当我调用此函数时,我希望能够删除“ DerivedData”文件夹,而我正在使用另一条路径作为证明,但是无论如何它都无法工作。有问题的文件夹不会将其删除,并给我一个错误,我无法访问
func clearTempFolder() {
let fm = FileManager.default
do {
let folderPath = "/Users/stefano/Desktop/prova"
let paths = try fm.contentsOfDirectory(atPath: folderPath)
for path in paths
{
try fm.removeItem(atPath: "\(folderPath)/\(path)")
}
} catch {
print(error.localizedDescription)
}
}
答案 0 :(得分:0)
直接在目录removeItem
本身上使用URL
函数:
请记住,目录应位于应用程序的沙箱中。所以:
let paths = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
let documentsDirectory = paths.first!
print(documentsDirectory) // This is where you should store your app data
let urlPath = documentsDirectory.appendingPathComponent("DirectoryToDelete") // Assuming the directory exist at that path
do {
try FileManager.default.removeItem(at: urlPath)
} catch {
print(error)
}
答案 1 :(得分:-1)
您的代码将清除folderPath-如清空它,但不会删除folderPath本身:)
如Mojtaba所说,使用try fm.removeItem(atPath: folderPath)
删除文件夹
请注意,您的应用程序不能被沙箱化-是Mac还是ios应用程序
ios模拟器应该可以工作! :)因为实际上并没有像设备那样检查权限;)
该代码很好,如果我使用它,它对我也有用:)