gpt4 book ai didi

iphone - iPhone 中 NSCachesDirectory 的大小

转载 作者:行者123 更新时间:2023-12-03 18:27:21 24 4
gpt4 key购买 nike

我如何获取文件夹 NSCachesDirectory 的大小,即/Library/Cache。我想知道这个文件夹的大小,以便我最终可以清除它。

谢谢。

编辑:这是我的代码。

NSDictionary *attributes = [[NSFileManager defaultManager] attributesOfItemAtPath:folderPath error:&error];
if (attributes != nil) {

if (fileSize = [attributes objectForKey:NSFileSize]) {
NSLog(@"size of :%@ = %qi\n",folderPath, [fileSize unsignedLongLongValue]);
}

}

当我运行这个程序时,它给我的文件大小为 768(不知道字节或 KB),我检查查找器,它显示文件夹大小为 168KB。我不知道出了什么问题。

最佳答案

类似以下内容应该可以帮助您入门:

- (unsigned long long int) cacheFolderSize {
NSFileManager *_manager = [NSFileManager defaultManager];
NSArray *_cachePaths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *_cacheDirectory = [_cachePaths objectAtIndex:0];
NSArray *_cacheFileList;
NSEnumerator *_cacheEnumerator;
NSString *_cacheFilePath;
unsigned long long int _cacheFolderSize = 0;

_cacheFileList = [_manager subpathsAtPath:_cacheDirectory];
_cacheEnumerator = [_cacheFileList objectEnumerator];
while (_cacheFilePath = [_cacheEnumerator nextObject]) {
NSDictionary *_cacheFileAttributes = [_manager fileAttributesAtPath:[_cacheDirectory stringByAppendingPathComponent:_cacheFilePath] traverseLink:YES];
_cacheFolderSize += [_cacheFileAttributes fileSize];
}

return _cacheFolderSize;
}

编辑

返回的值将以字节为单位:参见。 http://developer.apple.com/mac/library/documentation/Cocoa/Reference/Foundation/Classes/NSFileManager_Class/Reference/Reference.html#//apple_ref/doc/c_ref/NSFileSize

假设您在模拟器中运行此程序,Finder 可能会报告这些字节的文件 block 的使用情况。这些 block 必然大于文件数据本身。阅读 HFS+ 系统以了解 block :http://en.wikipedia.org/wiki/HFS_Plus

我不确定 iPhone 上使用的文件系统,或者设备上的文件 block 大小是多少,因此虽然字节总数相同,但模拟器和设备之间的实际磁盘使用情况可能不同.

关于iphone - iPhone 中 NSCachesDirectory 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2224642/

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