首先,我正在使用Swift。其次,这行在我的代码中运行良好:
let didIt = fileManager.moveItemAtURL(originalFilePath, toURL: newFilePath, error: nil)
...只要newFilePath中没有特殊字符。如果newFilePath中有美元符号或符号($,&),则该行失败。我的问题是newFilePath来自窗口中的文本字段,用户可以在其中键入任何旧东西。如何转义特殊字符,或对它们进行编码以便它们通过测试并包含在新文件名中?
提前感谢任何指示。
答案 0 :(得分:0)
我的问题是newFilePath来自窗口中的文本字段,用户可以在其中键入任何旧东西。
对,你有问题。为什么不使用NSSavePanel
让用户选择保存文件的名称?
如果您坚持从文本字段中获取输入,则-URLByAppendingPathComponent:
的文档明确指出路径组件字符串应为原始格式的<#strong>(不是URL编码 )&#34; (强调我的)。
在添加路径组件之前,您最初是如何创建newFilePath
的?例如,您应该使用其中一种方法&#34; [fF] ileURL&#34;在名称中。