我在文档目录中创建了一个文件,由于某种原因,当我尝试使用下面的代码将其删除时,该文件不会被删除。代码没有引发任何错误,但是文件仍然存在
let fileManager = FileManager.default
if let documentDirectory = fileManager.urls(for: .documentDirectory, in: .userDomainMask).first {
let filePath = documentDirectory.appendingPathComponent("data.json")
do {
try fileManager.removeItem(atPath: filePath.path)
} catch let error as NSError {
print(error.localizedDescription)
}
}
我还尝试将其放在另一个文件夹中并删除该文件夹,但仍然是相同的问题。
这是文件存储的路径:
Users/user1/Library/Developer/CoreSimulator/Devices/76AFDB69-75C8-464E-93F2-6ABF622068FD/data/Containers/Data/Application/7D268156-977A-4A3C-834B-6B13FA3DE76D/Documents/
答案 0 :(得分:1)
您可以尝试以下操作
if let filePath = fileManager.urls(for: .documentDirectory, in: .userDomainMask).first?.appendingPathComponent("data.json"), fileManager.fileExists(atPath: filePath.path) {
do {
try fileManager.removeItem(atPath: filePath.path)
} catch let error as NSError {
print(error.localizedDescription)
}
}
答案 1 :(得分:1)
代码没有引发任何错误,但是文件仍然存在
不,不是。问题在于您检查“文件是否仍在”的方式。您正在计算机上 查找文件。但是iOS文件是沙盒。在您查看时,文件所在的路径与声明的路径完全不同:
Users/user1/Library/Developer/CoreSimulator/Devices/76AFDB69-75C8-464E-93F2-6ABF622068FD/data/Containers/Data/Application/7D268156-977A-4A3C-834B-6B13FA3DE76D/Documents/
这种路径不是永久的。它们是没有意义的,不应使用。知道文件是否仍然存在的唯一方法是在iOS内部使用更多代码,即询问FileManager 。当您这样做时,您会发现您确实是在成功删除文件。