在主包的子目录中查找文件时获取 nil

Eug*_*rov 5 file swift

我已将文件夹复制index.html到项目中。

当我尝试获取文件夹内文件的路径时,我得到nil.

let path = Bundle.main.path(forResource: "index", ofType: "html", inDirectory: "games/game1")
Run Code Online (Sandbox Code Playgroud)

我也尝试使用“/games/game1”字符串。虽然不起作用。

但是当我移动index.html到我的项目的根目录并使用

let path = Bundle.main.path(forResource: "index", ofType: "html")
Run Code Online (Sandbox Code Playgroud)

我得到了正确的路径。

所以我的问题是如何获得index.html子文件夹内的路径?

Eug*_*rov 7

解决方案是使用

Bundle.main.url(forResource: "index", withExtension: "html", subdirectory: "games/game1")
Run Code Online (Sandbox Code Playgroud)

我不知道为什么,但如果我们得到一个路径,然后从它构建一个 URL,它就不起作用。

注意:你必须

  1. 如果需要,复制项目
  2. 创建文件夹引用(不是“创建组”)
  3. 添加到目标