【发布时间】:2019-02-28 01:59:05
【问题描述】:
以下是我的代码 - 我试图获取文档目录路径并使用标准 FileManager 单例尝试创建文件,但我无法创建文件,因为错误 -
无法存储数据:Error Domain=NSCocoaErrorDomain Code=4“文件“CrashLog.txt”不存在。”
UserInfo={NSFilePath=file:///Users/ABC/Library/Developer/CoreSimulator/Devices/87317777-63E7-422B-A55F-878E3267AFB8/data/Containers/Data/Application/4B41AA87-E4B9-4EE4-A67F -AC3B018913CC/文档/崩溃日志, NSUnderlyingError=0x600000244ec0 {错误域=NSPOSIXErrorDomain Code=2 "没有这样的文件或目录"}}
开发中的代码 -
let paths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)
if (paths.count > 0) {
let documentsDirectory = paths[0]
let logFilePath = URL(fileURLWithPath: documentsDirectory).appendingPathComponent("CrashLog.txt").absoluteString
let _string = "Hello"
//Create file at given path
let data = _string.data(using: .utf8)
//let attributes = FileManager.default.attributesOfItem(atPath: logFilePath)
let fileExists : Bool = FileManager.default.fileExists(atPath: logFilePath)
print(fileExists)
let isFileCreated = FileManager.default.createFile(atPath: logFilePath, contents: data, attributes: nil)
print("ifFileCreated", isFileCreated)
}
【问题讨论】:
-
Nvm,我没有正确阅读您的代码。不管@Larme 说什么!
-
let logFilePath = URL(fileURLWithPath: documentsDirectory).appendingPathComponent("CrashLog.txt")相反,不要使用absoluteString,所以:(atPath: logFilePath.path)(两次)应该可以解决问题。 -
我不记得确切的答案,但请记住
.absoluteString和.path返回不同的东西,我记得有一个问题是由使用 absoluteString 而不是路径引起的。
标签: ios swift nsfilemanager