gpt4 book ai didi

ios - 文件从应用程序中删除,但仍然占用相同的空间?

转载 作者:行者123 更新时间:2023-11-30 13:31:32 25 4
gpt4 key购买 nike

当我通过 iTunes 删除应用程序的文件时,空间仍然被占用,直到我删除并重新安装该应用程序。如果我列出应用程序文档目录的内容,则表明没有文件,所以我想知道是否存在相当于垃圾文件夹的内容。如果没有,我应该做什么来恢复这个空间?

此应用程序使用 UIImagePickerController 来录制视频,然后将其保存在应用程序的本地存储空间中。正是这些录音暴露给了 iTune(plist 中的“应用程序支持 iTunes 文件共享”),以便我可以在开发期间添加和删除文件。

我用来将文件保存到应用程序存储空间的代码:

extension VideoRecorderViewController: UIImagePickerControllerDelegate {

func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {

let mediaType = info[UIImagePickerControllerMediaType]
if mediaType!.isEqualToString(kUTTypeMovie as String) {
let documentsUrl = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask).first!

if let mediaURL = info[UIImagePickerControllerMediaURL] as? NSURL {

let dateFormatter = NSDateFormatter()
dateFormatter.timeZone = NSTimeZone(name: "UTC")
dateFormatter.dateFormat = "yyyyMMddHHmmss"
let baseFilename = dateFormatter.stringFromDate(NSDate())

// Write out to application's storage area
let videoData = NSData(contentsOfURL: mediaURL)
let dataPath = documentsUrl.filePathURL?.path?.stringByAppendingPathComponent("\(baseFilename).MOV")
videoData?.writeToFile(dataPath!, atomically: true)
}
}
}
}

我用来列出应用程序存储空间中的文件的代码:

let directoryUrls = try  NSFileManager.defaultManager().contentsOfDirectoryAtURL(documentsUrl, includingPropertiesForKeys: nil, options: NSDirectoryEnumerationOptions())

print ("all files:")
for entry in directoryUrls {
let directoryItem : NSURL = entry
print(" ", directoryItem.absoluteString)
}

还尝试从临时目录中删除:

func clearTmpDirectory() {

do {
let tmpDirectoryFiles = try NSFileManager.defaultManager().contentsOfDirectoryAtPath(NSTemporaryDirectory())
print ("all files:")
for entry in tmpDirectoryFiles {
print("Removing: ", entry)
do {
try NSFileManager.defaultManager().removeItemAtPath(entry)
} catch let error as NSError {
print("error", error)
}
}
} catch let error as NSError {
print("error", error)
}
}

我尝试四处寻找答案,但还没有找到任何答案。谁能提出我可能忽略的内容?

顺便说一句,我确实检查了 CachesDirectory 和 MoviesDirectory。前者存在,但没有文件占用空间,后者不存在。刚刚还检查了 UserDirectory,但返回了一个 nil 列表。

最佳答案

虽然我仍然不确定为什么清除 TemporaryDirectory 没有释放我所希望的空间(仍将赞赏洞察力),但更改用于存储持久视频捕获的代码的代码会有所帮助。我将 writeToFile 方法更改为文件移动,这样:

do {

try NSFileManager.defaultManager().moveItemAtPath(mediaURL.path!, toPath: dataPath!)

} catch let error as NSError {
print("Error: ", error)
}

关于ios - 文件从应用程序中删除,但仍然占用相同的空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36528710/

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