我正在尝试在设备上写入数据。但我不希望它们向用户公开,并希望将它们保存在自定义的重新定位中。我试过这段代码
let fileURL = try! FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: true).appendingPathComponent("test/mytest")
print(fileURL)
try data?.write(to: fileURL)
这是获得的路径
file:///var/mobile/Containers/Data/Application/34567-234567dfgh-dfghj/Documents/test/mytest
但是我收到一条错误消息,告诉我在mytest
文件夹中找不到test
答案 0 :(得分:2)
在致电<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
之前,您必须先创建目录:
hello = function() {
alert("he");
}
虽然当您致电write
时,您已将FileManager.default.fileExists(atPath: fileURL)
var isDir: ObjCBool = ObjCBool(false)
let exists = FileManager.default.fileExists(atPath: fileURL, isDirectory: &isDir)
if !exists && !isDir.boolValue {
try! FileManager.default.createDirectory(at url: fileURL, withIntermediateDirectories: true)
}
传递给url(for:in:appropriateFor:create:)
,但目录true
未创建,因为您已追加它。所以,你必须创建它。