디렉토리를 반복 할 때 fileAttributes 메소드를 호출하는 것이 얼마나 비쌉니까?NSDirectoryEnumerator의 fileAttributes 메소드의 성능 특성은 무엇입니까?
특히, 열거 된 경로가 디렉토리인지 확인하고 싶습니다. fileAttributes 사전이나 파일 관리자를 사용하는 것이 더 좋습니까? 단지 isDirectory (아래 예)
NSString *path = "/User/Jack/Documents";
NSDirectoryEnumerator *dirEnum = [filemanager enumeratorAtPath:path];
NSString *file;
BOOL isDir;
while (file = [dirEnum nextObject]) {
NSLog(@"File: %@", file);
NSString * p = [path stringByAppendingPathComponent:file];
BOOL isDir1;
[[NSFileManager defaultManager] fileExistsAtPath:p isDirectory:&isDir1];
BOOL isDir2 = [[dirEnum fileAttributes] objectForKey:@"NSFileType"] == NSFileTypeDirectory;
NSLog(@"isDirectory using fileExistsAtPath:isDirectory: = %d", isDir1);
NSLog(@"isDirectory using FileAttributes = %d", isDir2);
}
fileAttributes
이 외에도 "불필요한"정보의 톤을 반환, 여기에 파일 관리자뿐만 아니라 우리가 이미를 열거하고 있기 때문에 낭비 보인다 호출 반면 샘플 출력
2011-12-23 16:17:40.523 App[10190:707] File Attributes: {
NSFileCreationDate = "2011-10-23 04:04:51 +0000";
NSFileExtensionHidden = 0;
NSFileGroupOwnerAccountID = 80;
NSFileGroupOwnerAccountName = admin;
NSFileModificationDate = "2011-10-23 04:07:52 +0000";
NSFileOwnerAccountID = 501;
NSFileOwnerAccountName = Tony;
NSFilePosixPermissions = 493;
NSFileReferenceCount = 6;
NSFileSize = 204;
NSFileSystemFileNumber = 8381694;
NSFileSystemNumber = 234881029;
NSFileType = NSFileTypeDirectory;
}
입니다 문제의 디렉토리.
통찰력이 있으십니까?