gpt4 book ai didi

iphone - iOS - 如何有选择地删除文档目录中超过一个月的文件

转载 作者:可可西里 更新时间:2023-11-01 03:37:20 25 4
gpt4 key购买 nike

我正在将图像下载到我的应用程序,几周后用户将不再关心这些图像。我将它们下载到应用程序中,这样就不必在每次启动时都下载它们。问题是我不希望 Documents 文件夹随着时间的推移变得比它必须的更大。所以我想我可以“清理”超过一个月的文件。

问题是,那里会有一些文件超过一个月但我不想删除。它们将是静态命名文件,因此它们很容易识别,并且只有 3 或 4 个。虽然可能有几十个旧文件我想删除。所以这里有一个例子:

picture.jpg           <--Older than a month DELETE
picture2.jpg <--NOT older than a month Do Not Delete
picture3.jpg <--Older than a month DELETE
picture4.jpg <--Older than a month DELETE
keepAtAllTimes.jpg <--Do not delete no matter how old
keepAtAllTimes2.jpg <--Do not delete no matter how old
keepAtAllTimes3.jpg <--Do not delete no matter how old

我怎样才能有选择地删除这些文件?

提前致谢!

最佳答案

删除超过两天的文件的代码。最初我回答here .我测试了它,它在我的项目中工作。

附言在删除文档目录中的所有文件之前要小心,因为这样做可能最终会丢失您的数据库文件(如果您正在使用..!!),这可能会给您的应用程序带来麻烦。这就是为什么我在那里保留 if 条件的原因。 :-))

// Code to delete images older than two days.
#define kDOCSFOLDER [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"]

NSFileManager* fileManager = [[[NSFileManager alloc] init] autorelease];
NSDirectoryEnumerator* en = [fileManager enumeratorAtPath:kDOCSFOLDER];

NSString* file;
while (file = [en nextObject])
{
NSLog(@"File To Delete : %@",file);
NSError *error= nil;

NSString *filepath=[NSString stringWithFormat:[kDOCSFOLDER stringByAppendingString:@"/%@"],file];


NSDate *creationDate =[[fileManager attributesOfItemAtPath:filepath error:nil] fileCreationDate];
NSDate *d =[[NSDate date] dateByAddingTimeInterval:-1*24*60*60];

NSDateFormatter *df=[[NSDateFormatter alloc]init];// = [NSDateFormatter initWithDateFormat:@"yyyy-MM-dd"];
[df setDateFormat:@"EEEE d"];

NSString *createdDate = [df stringFromDate:creationDate];

NSString *twoDaysOld = [df stringFromDate:d];

NSLog(@"create Date----->%@, two days before date ----> %@", createdDate, twoDaysOld);

// if ([[dictAtt valueForKey:NSFileCreationDate] compare:d] == NSOrderedAscending)
if ([creationDate compare:d] == NSOrderedAscending)

{
if([file isEqualToString:@"RDRProject.sqlite"])
{

NSLog(@"Imp Do not delete");
}

else
{
[[NSFileManager defaultManager] removeItemAtPath:[kDOCSFOLDER stringByAppendingPathComponent:file] error:&error];
}
}
}

关于iphone - iOS - 如何有选择地删除文档目录中超过一个月的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10128713/

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