当前位置:  开发笔记 > IOS > 正文

如何获得给定路径的文件大小?

如何解决《如何获得给定路径的文件大小?》经验,为你挑选了6个好方法。

我有一个包含在NSString中的文件路径.有没有办法获得其文件大小?



1> Oded Ben Dov..:

这个班轮可以帮助人们:

unsigned long long fileSize = [[[NSFileManager defaultManager] attributesOfItemAtPath:someFilePath error:nil] fileSize];

这将以字节为单位返回文件大小.


bytes - 测量值是字节
该方法的实际返回值是`unsigned long long`,因此`int`不适合在这里.
我喜欢这一个.但这是什么衡量标准?字节,Kb等?也谢谢你.

2> Frank Sheara..:

请记住,自Mac OS X v10.5起,不推荐使用fileAttributesAtPath:traverseLink:.attributesOfItemAtPath:error:相反,请使用相同网址描述的相同内容.

有一点需要注意,我是Objective-C的新手,而且我忽略了调用时可能出现的错误attributesOfItemAtPath:error:,你可以执行以下操作:

NSString *yourPath = @"Whatever.txt";
NSFileManager *man = [NSFileManager defaultManager];
NSDictionary *attrs = [man attributesOfItemAtPath: yourPath error: NULL];
UInt32 result = [attrs fileSize];


此代码泄漏分配的FileManager.我建议您只使用NSFileManager.defaultManager Singleton来避免这种情况.

3> Tyler Long..:

如果有人需要Swift版本:

let attr: NSDictionary = try! NSFileManager.defaultManager().attributesOfItemAtPath(path)
print(attr.fileSize())



4> Parag Bafna..:

CPU使用attributesOfItemAtPath引发:错误:
您应该使用stat.

#import 

struct stat stat1;
if( stat([inFilePath fileSystemRepresentation], &stat1) ) {
      // something is wrong
}
long long size = stat1.st_size;
printf("Size: %lld\n", stat1.st_size);



5> Sk Borhan Ud..:

如果只想使用带字节的文件大小,

unsigned long long fileSize = [[[NSFileManager defaultManager] attributesOfItemAtPath:yourAssetPath error:nil] fileSize];

NSByteCountFormatter文件大小的字符串转换(来自字节)具有精确的KB,MB,GB ...它的返回像120 MB120 KB

NSError *error = nil;
NSDictionary *attrs = [[NSFileManager defaultManager] attributesOfItemAtPath:yourAssetPath error:&error];
if (attrs) {
    NSString *string = [NSByteCountFormatter stringFromByteCount:fileSize countStyle:NSByteCountFormatterCountStyleBinary];
    NSLog(@"%@", string);
}



6> Apollo..:

根据Oded Ben Dov的回答,我宁愿在这里使用一个对象:

NSNumber * mySize = [NSNumber numberWithUnsignedLongLong:[[[NSFileManager defaultManager] attributesOfItemAtPath:someFilePath error:nil] fileSize]];

推荐阅读
mylvfamily
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有