Swift 3:如何获取文件夹中保存的文件路径

时间:2016-11-14 22:32:03

标签: ios swift3

path = Bundle.main.path(forResource: "Owl.jpg", ofType: "jpg")

使用NSHomeDirectory()返回nil,我可以验证它位于Documents/文件夹下。

2 个答案:

答案 0 :(得分:27)

首先,单独的名称和扩展名:

Bundle.main.path(forResource: "Owl", ofType: "jpg")

其次,将您的包和Documents文件夹分开(精神上)。它们是两个完全不同的东西。如果这个文件是Documents文件夹,它绝对不在你的主包中!你可能想要这样的东西:

let fm = FileManager.default
let docsurl = try! fm.url(for:.documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false)
let myurl = docsurl.appendingPathComponent("Owl.jpg")

第三,如果Owl是资产目录中的图像资产,那么说

let im = UIImage(named:"Owl") // or whatever its name is

答案 1 :(得分:2)

经过测试: xCode 8.3.2 & Swift 3.1

首先在项目文件夹中拖动文件(JPG,MP3,ZIP)并确保选中复制项目(如果需要)并在添加到目标 enter image description here

在相关的 ViewController

try {$accessToken = $helper->getAccessToken('http(s)://whatever/path/login.php');

如果您需要获取文件URL,可以使用NSBundle方法

let fileName = "fileName"
let fileType = "fileType"

if let filePath = Bundle.main.path(forResource: fileName, ofType: fileType) {
    print(filePath)
}

NSBundle方法pathForResource还有一个初始化程序,您可以在其中指定文件所在的目录,如:

if let fileURL = Bundle.main.url(forResource: fileName, withExtension: fileType) {
    print(fileURL)
}

获取文件网址:

if let filePath = Bundle.main.path(forResource: fileName, ofType: fileType, inDirectory: "filesSubDirectory") {
    print(filePath)
}