【发布时间】:2023-03-17 01:06:02
【问题描述】:
首先,我使用的是 Swift。其次,这一行在我的代码中运行良好:
let didIt = fileManager.moveItemAtURL(originalFilePath, toURL: newFilePath, error: nil)
...只要 newFilePath 中没有特殊字符。如果 newFilePath 中有一个美元符号或一个 & 符号 ($, & ),则该行失败。我的问题是 newFilePath 来自用户可以输入任何旧内容的窗口中的文本字段。如何转义特殊字符,或对其进行编码,以便它们通过测试并包含在新文件名中?
提前感谢任何指点。
【问题讨论】:
-
你能显示
originalFilePath和newFilePath的声明吗?听起来这就是您的问题所在。 -
看看this question上接受的答案。
-
感谢 Mike 的提示,但是当我使用 NSUTF8StringEncoding 时,我的路径都可以正常工作而不会崩溃,但是文件名在应该有空格的地方都有 %20...
-
newFilePath = newFilePath.URLByAppendingPathComponent(txtResultName.stringValue!.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)!)