如何获得给定路径的文件大小?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何获得给定路径的文件大小?相关的知识,希望对你有一定的参考价值。
我有一个包含在NSString中的文件路径。有没有办法获得其文件大小?
答案
这个班轮可以帮助人们:
unsigned long long fileSize = [[[NSFileManager defaultManager] attributesOfItemAtPath:someFilePath error:nil] fileSize];
这将以字节为单位返回文件大小。
另一答案
请记住,自Mac OS X v10.5起,不推荐使用fileAttributesAtPath:traverseLink:。使用attributesOfItemAtPath:error:
代替,在same URL thesamet提到。
有一点需要注意,我是Objective-C的新手,而且我忽略了调用attributesOfItemAtPath:error:
时可能出现的错误,你可以执行以下操作:
NSString *yourPath = @"Whatever.txt";
NSFileManager *man = [NSFileManager defaultManager];
NSDictionary *attrs = [man attributesOfItemAtPath: yourPath error: NULL];
UInt32 result = [attrs fileSize];
另一答案
如果有人需要Swift版本:
let attr: NSDictionary = try! NSFileManager.defaultManager().attributesOfItemAtPath(path)
print(attr.fileSize())
另一答案
CPU raises with attributesOfItemAtPath:error: 你应该使用stat。
#import <sys/stat.h>
struct stat stat1;
if( stat([inFilePath fileSystemRepresentation], &stat1) ) {
// something is wrong
}
long long size = stat1.st_size;
printf("Size: %lld
", stat1.st_size);
另一答案
根据Oded Ben Dov的回答,我宁愿在这里使用一个对象:
NSNumber * mySize = [NSNumber numberWithUnsignedLongLong:[[[NSFileManager defaultManager] attributesOfItemAtPath:someFilePath error:nil] fileSize]];
另一答案
如果只想使用带字节的文件大小,
unsigned long long fileSize = [[[NSFileManager defaultManager] attributesOfItemAtPath:yourAssetPath error:nil] fileSize];
NSByteCountFormatter文件大小的字符串转换(来自字节)与精确的KB,MB,GB ...它的返回像120 MB
或120 KB
NSError *error = nil;
NSDictionary *attrs = [[NSFileManager defaultManager] attributesOfItemAtPath:yourAssetPath error:&error];
if (attrs) {
NSString *string = [NSByteCountFormatter stringFromByteCount:fileSize countStyle:NSByteCountFormatterCountStyleBinary];
NSLog(@"%@", string);
}
另一答案
Swift 2.2:
do {
let attr: NSDictionary = try NSFileManager.defaultManager().attributesOfItemAtPath(path)
print(attr.fileSize())
} catch {
print(error)
}
另一答案
它将以字节为单位给出文件大小...
uint64_t fileSize = [[[NSFileManager defaultManager] attributesOfItemAtPath:_filePath error:nil] fileSize];
另一答案
Swift4:
let attributes = try! FileManager.default.attributesOfItem(atPath: path)
let fileSize = attributes[.size] as! NSNumber
以上是关于如何获得给定路径的文件大小?的主要内容,如果未能解决你的问题,请参考以下文章
在网站后台用户上传的图片如何获得图片路径存入数据库(mysql) (php解决) 急!!!
C语言 stat()函数获得文件大小需不需要打开文件?就是stat()函数是怎么获得文件的大小的?