path = Bundle.main.path(forResource: "Owl.jpg", ofType: "jpg")
はnilを返すドキュメントフォルダに保存されたファイルのパス、私はそれがDocuments/
フォルダの下にあることを確認することができるよNSHomeDirectory()
を使用して取得する方法。スウィフト3:しかし
path = Bundle.main.path(forResource: "Owl.jpg", ofType: "jpg")
はnilを返すドキュメントフォルダに保存されたファイルのパス、私はそれがDocuments/
フォルダの下にあることを確認することができるよNSHomeDirectory()
を使用して取得する方法。スウィフト3:しかし
まず、別の名前と拡張子:
Bundle.main.path(forResource: "Owl", ofType: "jpg")
第二に、別々の(精神的に)あなたのバンドルとドキュメントフォルダ。彼らは2つの全く異なるものです。このファイルがDocumentsフォルダの場合は、メインバンドルには絶対含まれていません!フクロウは、資産のカタログに画像アセットであるならば、
let im = UIImage(named:"Owl") // or whatever its name is
がでテスト言う、
let fm = FileManager.default
let docsurl = try! fm.url(for:.documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false)
let myurl = docsurl.appendingPathComponent("Owl.jpg")
第三:あなたは、おそらくこのような何かをしたい8.3.2 & スウィフトXcodeの3.1
最初にプロジェクトフォルダ内のファイル(JPG、MP3、ZIP)をドラッグし、必要に応じてコピーするはchecですターゲットにKED、プロジェクト/アプリがで選択されている追加の関連のViewControllerインサイド
let fileName = "fileName"
let fileType = "fileType"
if let filePath = Bundle.main.path(forResource: fileName, ofType: fileType) {
print(filePath)
}
あなたはNSBundleメソッドを使用することができ、ファイルのURLを取得する必要がある場合は
if let fileURL = Bundle.main.url(forResource: fileName, withExtension: fileType) {
print(fileURL)
}
また、NSBundleメソッドpathForResourceには、ファイルがどのディレクトリにあるかを指定できる初期化子があります。
if let filePath = Bundle.main.path(forResource: fileName, ofType: fileType, inDirectory: "filesSubDirectory") {
print(filePath)
}
とファイルURLを取得する:
if let fileURL = Bundle.main.url(forResource: fileName, withExtension: fileType, subdirectory: "filesSubDirectory") {
print(fileURL)
}
あなたのバンドルは、あなたがXcodeで、左側に表示されるものです。 Documentsフォルダは実際にはデバイスやシミュレータ上のアプリケーション内に作成されるので、このファイルは決して見つけられません。 – repoguy
@repoguy、ありがとうございます。誰かがdownvoteを説明することはできますか? – Marin