[英]unable to delete file from the app documents folder
使用Swift 3,我正在将视频文件写入documents文件夹。 这是文件的路径。
file:///var/mobile/Containers/Data/Application/D031AB20-CB7E-4B14-9483-E7C3F4C0EC55/Documents/output11:10:04.mov
现在我想使用filemanager
再次删除该文件。 我从avassetwriter
检索上面的路径,并使用outputurl
定义的outputurl
使用filemanager删除文件。
let fileManager = FileManager.default
do {
try fileManager.removeItem(at: (self.assetWriter?.outputURL)!)
} catch let err {
print(err)
}
但我得到一个错误,即没有这样的文件或目录。 使用self.assetWriter?.outputURL.path
给我同样的错误。
错误域= NSCocoaErrorDomain代码= 4“无法删除“ output11 / 10 / 04.mov”。 UserInfo = {NSFilePath = / var / mobile / Containers / Data / Application / D031AB20-CB7E-4B14-9483-E7C3F4C0EC55 / Documents / output11:10:04.mov,NSUserStringVariant =(Remove),NSUnderlyingError = 0x174240150 {Error Domain = NSPOSIXErrorDomain代码= 2“没有这样的文件或目录”}}
不要在文件名中使用冒号。
(出于传统原因),操作系统将它们视为路径分隔符,并用斜杠替换。
首先检查天气文件是否在此路径下(如果不存在),然后将其删除:-
let file_manager = FileManager.init()
if let url = self.assetWriter?.outputURL{
if file_manager.fileExists(atPath: url.path){
if file_manager.isDeletableFile(atPath: url.path){
do {
try file_manager.removeItem(at: url)
} catch let err {
print(err.localizedDescription)
}
}
}
}
从开始删除“ file://”字符串。
let path = documentPathValue.replacingOccurrences(of: "file://", with: "")
完整的代码
func clearAllFilesFromDirectory() {
let fileManager = FileManager.default
let documentsUrl = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0] as NSURL
let documentsPath = documentsUrl.path
do {
if let documentPathValue = documentsPath{
let path = documentPathValue.replacingOccurrences(of: "file://", with: "")
let fileNames = try fileManager.contentsOfDirectory(atPath: "\(path)")
print("all files in cache: \(fileNames)")
for fileName in fileNames {
let tempPath = String(format: "%@/%@", path, fileName)
//Check for specific file which you don't want to delete. For me .sqlite files
if !tempPath.contains(".sql") {
try fileManager.removeItem(atPath: tempPath)
}
}
}
} catch {
print("Could not clear document directory \(error)")
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.