gpt4 book ai didi

nsurl - 通过 [NSData dataWithContentsOfURL :. ..] 读取文件后,文件的 AccessDate 未更改

转载 作者:行者123 更新时间:2023-12-02 09:43:35 24 4
gpt4 key购买 nike

我正在文件系统中缓存一些用户信息。然后使用

阅读
NSData *cachedMessagesData = [NSData dataWithContentsOfURL:fileDirectoryForUserInfoCache];

我需要知道每个缓存文件的访问时间,但是,当我使用 Property 键检查访问时间时:

NSArray *filesInUserInfoCacheDirectory = [self.fileManager contentsOfDirectoryAtURL:self.cacheDirectoryForUserInfo includingPropertiesForKeys:[NSArray arrayWithObjects:@"NSURLCreationDateKey", @"NSURLContentAccessDateKey", nil] options:NSDirectoryEnumerationSkipsHiddenFiles error:nil];

NSDate *accessDate = [[[filesInUserInfoCacheDirectory lastObject] resourceValuesForKeys:[NSArray arrayWithObject:@"NSURLContentAccessDateKey"] error:nil] objectForKey:@"NSURLContentAccessDateKey"];

我发现访问日期与文件创建日期相同。通过 [NSData dataWithContentOfURL:...] 读取文件不会更改文件的访问时间属性。

谁能告诉我为什么?有没有办法读取文件以使访问时间更新?预先非常感谢。

最佳答案

回答我自己的问题。我终于不得不解决一点问题了。 NSURL 文件的访问日期属性在读取文件后无法更新,它的日期始终与 NSURL 文件的创建日期相同。一种解决方法是每次读取后覆盖文件,然后更新访问日期。但这对我来说听起来很奇怪。

另一种方法是使用 NSURL 文件的修改日期属性。该属性可以通过 FileManager 的 API setAttributes: ofItemAtPath: 设置。我没有实际修改文件,而是每次读取文件后都设置修改日期属性。然后稍后通过 NSURL API resourceValuesForKeys: 读回这个 NSDate 对象。

[self.fileManager setAttributes:[NSDictionary dictionaryWithObject:[NSDate date] forKey:NSFileModificationDate] ofItemAtPath:[fileDirectoryForUserInfoCache path] error:nil]; 

关于nsurl - 通过 [NSData dataWithContentsOfURL :. ..] 读取文件后,文件的 AccessDate 未更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12148507/

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