【发布时间】:2015-12-19 10:19:33
【问题描述】:
我在我的应用程序中下载了一些 PDF 文件,并希望在关闭应用程序时删除这些文件。
由于某种原因它不起作用:
创建文件:
let reference = "test.pdf"
let RequestURL = "http://xx/_PROJEKTE/xx\(self.reference)"
let ChartURL = NSURL(string: RequestURL)
//download file
let documentsUrl = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask).first! as NSURL
let destinationUrl = documentsUrl.URLByAppendingPathComponent(ChartURL!.lastPathComponent!)
if NSFileManager().fileExistsAtPath(destinationUrl.path!) {
print("The file already exists at path")
} else {
// if the file doesn't exist
// just download the data from your url
if let ChartDataFromUrl = NSData(contentsOfURL: ChartURL!){
// after downloading your data you need to save it to your destination url
if ChartDataFromUrl.writeToURL(destinationUrl, atomically: true) {
print("file saved")
print(destinationUrl)
} else {
print("error saving file")
}
}
}
然后我想调用test()函数来删除项目,像这样:
func test(){
let fileManager = NSFileManager.defaultManager()
let documentsUrl = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask).first! as NSURL
do {
let filePaths = try fileManager.contentsOfDirectoryAtPath("\(documentsUrl)")
for filePath in filePaths {
try fileManager.removeItemAtPath(NSTemporaryDirectory() + filePath)
}
} catch {
print("Could not clear temp folder: \(error)")
}
}
【问题讨论】:
-
我怀疑您想考虑使用
.CachesDirectory而不是.DocumentDirectory来保存和删除这些文件。 -
我确实尝试将我的文件保存在那里,但没有成功
-
那你一定要通读app backup best practices和QA1719。
-
@TwoStraws 好点,很多关于 SO 的答案只使用文档目录,但他们不应该......