반응형
경로가 주어진 파일 크기를 얻는 방법은 무엇입니까?
NSString에 포함 된 파일 경로가 있습니다. 파일 크기를 얻는 방법이 있습니까?
이 하나의 라이너는 사람들을 도울 수 있습니다 :
unsigned long long fileSize = [[[NSFileManager defaultManager] attributesOfItemAtPath:someFilePath error:nil] fileSize];
파일 크기를 바이트 단위로 반환합니다.
fileAttributesAtPath : traverseLink :는 Mac OS X v10.5부터 더 이상 사용되지 않습니다. attributesOfItemAtPath:error:
대신 사용하십시오 . thesamet에서 언급 한 동일한 URL에 설명되어 있습니다.
내가 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())
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\n", stat1.st_size);
바이트가있는 파일 크기 만 사용하려면
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);
}
Oded Ben Dov의 답변에 따라 여기에 객체를 사용하고 싶습니다.
NSNumber * mySize = [NSNumber numberWithUnsignedLongLong:[[[NSFileManager defaultManager] attributesOfItemAtPath:someFilePath error:nil] fileSize]];
스위프트 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
Swift 3.x 이상에서는 다음을 사용할 수 있습니다.
do {
//return [FileAttributeKey : Any]
let attr = try FileManager.default.attributesOfItem(atPath: filePath)
fileSize = attr[FileAttributeKey.size] as! UInt64
//or you can convert to NSDictionary, then get file size old way as well.
let attrDict: NSDictionary = try FileManager.default.attributesOfItem(atPath: filePath) as NSDictionary
fileSize = dict.fileSize()
} catch {
print("Error: \(error)")
}
참고 URL : https://stackoverflow.com/questions/815471/how-to-get-the-file-size-given-a-path
반응형
'developer tip' 카테고리의 다른 글
MacOS 앱이 Xcode 시뮬레이터에서 실행되지 않습니다. (0) | 2020.11.09 |
---|---|
여러 줄을 편집하는 IntelliJ IDEA 방법 (0) | 2020.11.09 |
int (숫자)를 선행 0이있는 문자열로 변환 하시겠습니까? (0) | 2020.11.09 |
Android 애플리케이션의 TextView에서 텍스트의 첫 글자를 대문자로 표시하는 방법 (0) | 2020.11.09 |
UICollectionReusableView 메서드가 호출되지 않음 (0) | 2020.11.09 |