我正在尝试将一组对象保存到文件中。那失败了。因此,为了测试我的过程,我尝试将一个简单的字符串写入文件,但也没有用。下面是我用来测试将字符串简单写入文件的代码。
var directoryPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as String
var path = directoryPath.stringByAppendingPathComponent(archivePath)
var checkFile = NSFileManager.defaultManager()
NSLog("Path: %@", path)
var testString = "Hi my name is ken"
var error : NSError?
var written = testString.writeToFile(path, atomically: true, encoding: NSASCIIStringEncoding, error: &error)
if ( written == false ) {
if ((error ) != nil) {
var errString = error?.localizedDescription
NSLog( "Fail: %@", errString! )
var isDir : ObjCBool = false
var isFile = checkFile.fileExistsAtPath(directoryPath, isDirectory: &isDir)
if ( isDir ){
NSLog("The directory %@, exists", directoryPath )
} else {
NSLog("The directory %@, does not exist", directoryPath )
}
}
}
这是 NSLog 语句的结果:
2015-02-25 08:37:29.280 ...应用名称... [14596:3911337] 路径:/Users/cs/Library/Developer/CoreSimulator/Devices/1747CFD7-5252-4221-AA89-BDEC1A57BA5A/data/Containers/Data/Application/5DC24B8F-A667-4ECD-B7E6-E139E65525E1/Documents/data/appdata.txt 2015-02-25 08:37:29.284 ...应用名称... [14596:3911337] 失败:操作无法完成。 ( cocoa 错误 4。) 2015-02-25 08:37:29.285 ...应用名称... [14596:3911337] 目录/Users/cs/Library/Developer/CoreSimulator/Devices/1747CFD7-5252-4221-AA89-BDEC1A57BA5A/data/Containers/Data/Application/5DC24B8F-A667-4ECD-B7E6-E139E65525E1/Documents,存在
最佳答案
您没有包含存档路径,但我假设它是/data/appdata.txt。
文档目录存在,但其中没有/data 文件夹,除非您创建它。尝试将文件写入/data/appdata.txt 不会自动创建数据目录。首先在 .DocumentzDirectory 中创建数据目录,或者尝试将文件保存到根目录(不带/data/)。
关于ios - 文件不会写入磁盘。我究竟做错了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28723189/