Bundle.main.path(forResource :)返回nil

时间:2019-02-06 13:00:04

标签: ios swift xcode

由于我未知的原因,我无法找到文件:

let bundlePath = Bundle.main.path(forResource: "REGION_DETAILS_41", ofType: ".zip")

这很奇怪,因为当我列出资源目录中存在的所有文件时,它就在那里。我可以找到其他文件,但找不到此文件。 我还尝试了不同的搜索配置,例如:

let bundlePath = Bundle.main.path(forResource: "REGION_DETAILS_41.zip", ofType: nil)
let bundlePath = Bundle.main.path(forResource: "REGION_DETAILS_41.zip", ofType: "")

但没有成功。

编辑: 以下内容也会失败:

Bundle.main.path(forResource: "REGION_DETAILS_41", ofType: "zip")

EDIT2: 我通过检查我的资源文件夹并检查其内容来验证它是否存在:

Bundle.main.resourcePath
FileManager.default.contentsOfDirectory(atPath: myResourcesFolder)

enter image description here

我也已经在finder中签到了它。

它包含在副本捆绑资源中:

enter image description here

2 个答案:

答案 0 :(得分:2)

感谢https://stackoverflow.com/users/1187415/martin-r: iOS设备上的文件系统区分大小写:“ zip”!=“ ZIP”。 更改为ZIP后,效果很好。

答案 1 :(得分:1)

第一件事是通过查看Copy Bundle Resource检查添加时是否将此ZIP文件复制到捆绑中。

以下代码已经过测试,您可以通过它访问zip文件:

let bundlePath = Bundle.main.path(forResource: "REGION_DETAILS_41", ofType: "zip")