gpt4 book ai didi

ios - 报亭内存存储问题,如何获取应用程序缓存目录?

转载 作者:行者123 更新时间:2023-11-29 12:47:43 25 4
gpt4 key购买 nike

我有一个报亭应用程序,它有杂志并使用报亭框架。我意识到删除杂志和/或下载杂志时出了点问题,因为当我访问设置/使用时,我的应用程序在下载和删除同一本杂志时内存使用量不断增加。发现问题...在委托(delegate)方法中下载问题时:

-(void)connectionDidFinishDownloading:(NSURLConnection *)connection destinationURL:(NSURL *)destinationURL

我只需要在最后添加这样的内容:

NSError *error;
[[NSFileManager defaultManager] removeItemAtPath:[destinationURL path] error:&error];
if (error){
NSLog(@"ERROR:%@", error);
}

即使目录名为“缓存”,您也需要手动删除。好的,问题已解决,但是那些已经下载我的应用程序并且在缓存目录中有大量 MB 死机的客户呢。

我想知道如何在启动时获取此目录并删除其中的所有内容,并且只删除一次...我只能使用 NSUserdefault 执行一次,但我如何获取此目录并删除其中的任何 zip 文件...此目录和其中的文件的示例是:

/private/var/mobile/Applications/1291CC20-C55F-48F6-86B6-B0909F887C58/Library/Caches/bgdl-280-6e4e063c922d1f58.zip

但此路径因设备而异。我想在发布时执行此操作,因此我确定没有正在进行的下载,但欢迎使用任何其他解决方案,在此先感谢。

最佳答案

您需要做的就是枚举缓存目录中的所有文件并删除具有 zip 扩展名的文件:

- (void)removeZipFilesFromCachesDirectory {
static NSString *const kZIPExtension = @"zip";

NSFileManager *fileManager = [NSFileManager defaultManager];
NSString *cachesDirectoryPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) objectAtIndex:0];

NSError *error = nil;
NSArray *fileNames = [fileManager contentsOfDirectoryAtPath:cachesDirectoryPath error:&error];
if (error == nil) {
for (NSString *fileName in fileNames) {
NSString *filePath = [cachesDirectoryPath stringByAppendingPathComponent:fileName];
if ([filePath.pathExtension.lowercaseString isEqualToString:kZIPExtension]) {
NSError *anError = nil;
[fileManager removeItemAtPath:filePath error:&anError];
if (anError != nil) {
NSLog(@"%@", anError);
}
}
}
} else {
NSLog(@"%@", error);
}
}

关于ios - 报亭内存存储问题,如何获取应用程序缓存目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23224781/

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