Joa*_*nes 1 size macos objective-c osx-lion
此代码正确,但文件夹大小错误。如果我更改目录,大小总是错误的。例如,“%@/Caches/com.apple.Safari/Webpage Previews”的大小是 23 MB,但我有 16.5 KB。
NSString *path = [NSString stringWithFormat:@"%@/Caches/com.apple.Safari/Webpage Previews", [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) objectAtIndex:0]];
NSNumber *fileSize = [[[NSFileManager defaultManager] attributesOfItemAtPath:path error:nil] objectForKey:NSFileSize];
resultsize += [fileSize unsignedLongLongValue];
Run Code Online (Sandbox Code Playgroud)
我也用过这个,但大小总是错误的:
NSFileManager *fm = [[NSFileManager alloc] init];
NSURL *LibraryURL = [[fm URLsForDirectory:NSLibraryDirectory inDomains:NSUserDomainMask] lastObject];
NSURL *previewsURL = [LibraryURL URLByAppendingPathComponent:@"Caches/com.apple.Safari/Webpage Previews"];
resultSize += [[[fm attributesOfItemAtPath:[previewsURL path] error:nil] objectForKey:NSFileSize] unsignedIntegerValue];
Run Code Online (Sandbox Code Playgroud)
你能帮助我吗?谢谢。
如果要获取文件夹中所有文件的大小,则需要遍历文件夹的内容并获取实际文件的大小:
unsigned long long totalSize = 0;
NSFileManager *fm = [[NSFileManager alloc] init];
NSURL *libraryURL = [[fm URLsForDirectory:NSLibraryDirectory inDomains:NSUserDomainMask] lastObject];
NSURL *previewsURL = [LibraryURL URLByAppendingPathComponent:@"Caches/com.apple.Safari/Webpage Previews"];
NSDirectoryEnumerator *enumerator = [fm enumeratorAtURL:previewsURL includingPropertiesForKeys:[NSArray arrayWithObject:NSURLFileSizeKey] options:0 errorHandler:nil /* or an actual error handler */];
for (NSURL *url in enumerator) {
NSNumber *sizeNumber;
if ([url getResourceValue:&sizeNumber forKey:NSURLFileSizeKey error:nil /* or an error */])
totalSize += [sizeNumber unsignedLongLongValue];
}
Run Code Online (Sandbox Code Playgroud)
(我没有测试过这个。)
| 归档时间: |
|
| 查看次数: |
960 次 |
| 最近记录: |