gpt4 book ai didi

swift - 试图清除文档文件夹 Swift

转载 作者:行者123 更新时间:2023-11-28 06:12:44 25 4
gpt4 key购买 nike

我使用以下方法将文件(下载)添加到文档目录:

 static func downloadFileWithLink(linkString : String){

// Create destination URL
let documentsUrl:URL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first as URL!
let destinationFileUrl = documentsUrl.appendingPathComponent("downloadedFile")

//Create URL to the source file you want to download
let fileURL = URL(string: linkString)

let sessionConfig = URLSessionConfiguration.default
let session = URLSession(configuration: sessionConfig)

let request = URLRequest(url:fileURL!)

let task = session.downloadTask(with: request) { (tempLocalUrl, response, error) in
if let tempLocalUrl = tempLocalUrl, error == nil {
// Success
if let statusCode = (response as? HTTPURLResponse)?.statusCode {
print("Successfully downloaded. Status code: \(statusCode)")
}

do {
try FileManager.default.copyItem(at: tempLocalUrl, to: destinationFileUrl)
} catch (let writeError) {
print("Error creating a file \(destinationFileUrl) : \(writeError)")
}

} else {
print("Error took place while downloading a file. Error description: %@", error?.localizedDescription);
}
}
task.resume()

}

它只是将文件下载到沙箱中的文档文件夹。我寻找删除文档文件夹中文件的方法,并尝试了以下操作:

static func deleteFiledInDocDirectory(){

let fileManager = FileManager.default
let tempFolderPath = NSTemporaryDirectory()
do {
let filePaths = try fileManager.contentsOfDirectory(atPath: tempFolderPath)
for filePath in filePaths {
try fileManager.removeItem(atPath: tempFolderPath + filePath)
}
} catch {
print("Could not clear temp folder: \(error)")
}
}

但是,当我检查沙箱时,下载的文件仍然存在。如何删除?

最佳答案

deleteFiledInDocDirectory() 中,您使用的是 NSTemporaryDirectory 而不是您最初将文件保存到的文档目录。

更改 tempFolderPath 以使用以下设置:

guard let tempFolderPath = fileManager.urls(for: .documentDirectory, in: .userDomainMask).first else {
return // documents directory not found for some reason
}

完整方法:

static func deleteFiledInDocDirectory(){
guard let tempFolderPath = fileManager.urls(for: .documentDirectory, in: .userDomainMask).first?.absoluteString else {
return // documents directory not found for some reason
}

let fileManager = FileManager.default

do {
let filePaths = try fileManager.contentsOfDirectory(atPath: tempFolderPath)
for filePath in filePaths {
try fileManager.removeItem(atPath: tempFolderPath + filePath)
}
} catch {
print("Could not clear temp folder: \(error)")
}
}

关于swift - 试图清除文档文件夹 Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46075861/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com