如何编码文件 NSURL 以指向名称中带有“/”的文件

How to encode a file NSURL to point to a file with a '/' in the name

我正在读取一个文件名中有斜杠的文件。我可以验证它是否存在于我正在寻找它的路径中,但是从中创建 NSData 失败。我已尝试在用于构建 URL 的字符串中将 / 替换为 %2F,但没有任何区别。

这是构建 URL:

的代码
let fileID = "This/That"
let filename = "\(fileID).json"

let bundleDirURL = myBundle.URLForResource("dirname", withExtension: nil, subdirectory: "MyFiles")
let fileURL = bundleDirURL.URLByAppendingPathComponent("Subpath").URLByAppendingPathComponent(filename)

let data = NSData(contentsOfURL: fileURL)

列表行给我一个空数据,即使文件存在于正确的路径中。我知道是 / 搞砸了。我怎样才能解决这个问题?我需要在文件名中保留 /

/ 实际上不是 Darwin(OS X 或 iOS)文件名中的合法字符。 UI 只是使它 看起来 就像在某些情况下一样。 OS X 将 : 换成 /。所以你的文件的实际名称是 This:That。根据您使用的工具,它将呈现为 This:ThatThis/That。这是 Mac OS 9 的旧保留。在 Mac OS 9 和更早版本中,: 是非法的,但 / 是合法的。在达尔文中(通过 OS X),情况正好相反。

如果可以的话,您真的非常想避免这种情况,只是文件名中没有 /:-_ 通常是更安全,. 通常很好)。但是如果你必须,那么你将不得不在你的字符串中将它换成 :