我想打开一个唯一命名的输出文件来编写plist或数据,但没有任何运气可以使用init的任何URL例程(fileURLWithPath :)或init (字符串:)FileHandle不接受我的URL进行写入访问
func NewFileHandleForWritingFile(path: String, name: String, type: String, outFile: inout String?) -> FileHandle? {
let fm = FileManager.default
var file: String? = nil
var uniqueNum = 0
while true {
let tag = (uniqueNum > 0 ? String(format: "-%d", uniqueNum) : "")
let unique = String(format: "%@%@.%@", name, tag, type)
file = String(format: "%@/%@", path, unique)
if false == fm.fileExists(atPath: file!) { break }
// Try another tag.
uniqueNum += 1;
}
outFile = file!
do {
let fileURL = URL.init(fileURLWithPath: file!)
let fileHandle = try FileHandle.init(forWritingTo: fileURL)
print("\(file!) was opened for writing")
//set the file extension hidden attribute to YES
try fm.setAttributes([FileAttributeKey.extensionHidden: true], ofItemAtPath: file!)
return fileHandle
} catch let error {
NSApp.presentError(error)
return nil;
}
}
调试器显示
这对于该URL的init程序添加方案(文件://),但其它方面与其他的,我想更喜欢在ju时抛出reutrning(-1)的新方法st使用路径。抛出错误(2)是一个ENOENT(没有这样的实体!?),因为我需要一个处理写给我很困惑,要怎么得到一个?示例路径是在桌面上创建的用于分类的新文件夹。
嗯,我仍持观望态度对写入数据或plist中,但我会记住这一点,谢谢! – slashlos
我结束了创建一个返回网址写这样我就可以使用建议的数据写入方法的变形功能:'尝试data.write(到:fileURL)' – slashlos