gpt4 book ai didi

ios - NSFileManager 不删除临时文件夹中的文件

转载 作者:行者123 更新时间:2023-11-29 00:03:13 28 4
gpt4 key购买 nike

我使用的应用程序可以从互联网下载图像并缓存它们,以便在用户在图像之间来回滑动时实现更快的性能。

我想在关闭 UIViewController 时清除缓存文件夹。所以我创建了这个静态方法。但是,我不断收到错误消息:每个文件都出现“无法删除文件”。

sDocumentsDir

/Users/MyName/Library/Developer/CoreSimulator/Devices/E5FAB592-143A-4B04-9A8C-CFEA73E6C712/data/Containers/Data/Application/2EB9CB73-9D34-4CE4-BA91-E9A3F2FC1CFA/Documents/。 tmp

文件名如下所示:

https___s3.amazonaws.com_mycompany_1288c8be6f8101.jpg

我做错了什么?

+ (BOOL) clearCacheFolder {
NSFileManager *filemgr = [NSFileManager defaultManager];
NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *sDocumentsDir = [documentPaths objectAtIndex:0];
sDocumentsDir = [sDocumentsDir stringByAppendingPathComponent:@"/.tmp"];

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"pathExtension == 'png' || pathExtension == 'jpg'"];

BOOL isDir;
if(([filemgr fileExistsAtPath:sDocumentsDir isDirectory:&isDir] && isDir)) {

NSError *error;
NSArray *fileArr = [filemgr contentsOfDirectoryAtPath:sDocumentsDir error:&error];
if(error){
NSLog(@"clearCacheFolder error populating array");
return false;
}

NSLog(@"clearCacheFolder number of items to delete: %lu, files: %@",fileArr.count, fileArr.description);

for(NSString *file in [fileArr filteredArrayUsingPredicate:predicate]){

@try {
[filemgr removeItemAtPath:[sDocumentsDir stringByAppendingString:file] error:&error];
} @catch (NSException *exception) {
NSLog(@"File delete exception: %@", exception.description);
} @finally {
if(error){
NSLog(@"File could NOT be deleted");
} else {
NSLog(@"File Deleted");
}
}
}

fileArr = [filemgr contentsOfDirectoryAtPath:sDocumentsDir error:&error];
NSLog(@"clearCacheFolder FINISHED count: %lu",fileArr.count);
}
return true;
}

最佳答案

检查您尝试使用的文件路径。[sDocumentsDir stringByAppendingString:file] 会产生错误的文件路径。在你的例子中它看起来像/Users/MyName/Library/Developer/CoreSimulator/Devices/E5FAB592-143A-4B04-9A8C-CFEA73E6C712/data/Containers/Data/Application/2EB9CB73-9D34-4CE4-BA91-E9A3F2FC1CFA/Documents/.tmphttps___s3.amazonaws.com_我的公司_1288c8be6f8101。 jpg

关于ios - NSFileManager 不删除临时文件夹中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48830908/

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