파일 메니져 가져오기 

NSFileManage * fileManager = [NSFileManager defaultManager];

 
현재 폴더 가져오기

NSFileManage * fileManager = [NSFileManager defaultManager];
NSString *currentPath = [fileManager currentDirectoryPath]; 




Documents 폴더 가져오기  

NSFileManager * fileManager = [NSFileManager defaultManager];
NSArray *dirPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString documentPath = [dirPath objectAtIndex:0]; 

 
현재 폴더 이동

NSFileManage * fileManager = [NSFileManager defaultManager];
NSArray *dirPath = NSSearchPathForDirectoriesInDomains(NSDocument, NSUserDomainMask, YES);

NSString documentPath = [dirPath objectAtIndex:0]; 

if ([fileManager changeCurrentDirectoryPath:documentPath] == NO){
  // 폴더 이동 못함
} else {
 // 폴더 이동함 

 
폴더 생성 

NSFileManage * fileManager = [NSFileManager defaultManager];
NSString *newDir = @"/test";
if (fileManager 
createDirectoryAtPath:newDir withIntermediateDirectories:YES attributes:nil error:NULL] ==NO){
  //  newDir 폴더 생성 실패
} else {
  // newDir 폴더 생성 성공 


 폴더 삭제 

NSFileManage * fileManager = [NSFileManager defaultManager]
NSString *delDir = @"/test";
if (fileManager removeItem
AtPath:delDir error:NULL] == NO){
  //  delDir 폴더 삭제 실패
} else {
  // delDir 폴더 삭제 성공 

 
폴더 내의 목록 표시 

NSFileManage * fileManager = [NSFileManager defaultManager];
NSArray *dirPath = NSSearchPathForDirectoriesInDomains(NSDocument, NSUserDomainMask, YES);
NSString *documentPath = [dirPath objectAtIndex:0]; 

NSArray *filelist = [fileManager contentsOfDirectoryAtPath: documentPath error:NULL]; 

 
파일/폴더 속성 정보 확인 

NSFileManage * fileManager = [NSFileManager defaultManager];
NSString *attDir = @"/";
NSDictionary *attributes;
attributes = [fileManager attributesOfItemAtPath:attDir error:NULL];

NSLog(@"파일 정보 : %@", [attributes objectForKey:NSFileType]); 


정의된 속성 정보

FOUNDATION_EXPORT NSString * const NSFileType;

FOUNDATION_EXPORT NSString * const NSFileTypeDirectory;

FOUNDATION_EXPORT NSString * const NSFileTypeRegular;

FOUNDATION_EXPORT NSString * const NSFileTypeSymbolicLink;

FOUNDATION_EXPORT NSString * const NSFileTypeSocket;

FOUNDATION_EXPORT NSString * const NSFileTypeCharacterSpecial;

FOUNDATION_EXPORT NSString * const NSFileTypeBlockSpecial;

FOUNDATION_EXPORT NSString * const NSFileTypeUnknown;

FOUNDATION_EXPORT NSString * const NSFileSize;

FOUNDATION_EXPORT NSString * const NSFileModificationDate;

FOUNDATION_EXPORT NSString * const NSFileReferenceCount;

FOUNDATION_EXPORT NSString * const NSFileDeviceIdentifier;

FOUNDATION_EXPORT NSString * const NSFileOwnerAccountName;

FOUNDATION_EXPORT NSString * const NSFileGroupOwnerAccountName;

FOUNDATION_EXPORT NSString * const NSFilePosixPermissions;

FOUNDATION_EXPORT NSString * const NSFileSystemNumber;

FOUNDATION_EXPORT NSString * const NSFileSystemFileNumber;

FOUNDATION_EXPORT NSString * const NSFileExtensionHidden;

FOUNDATION_EXPORT NSString * const NSFileHFSCreatorCode;

FOUNDATION_EXPORT NSString * const NSFileHFSTypeCode;

FOUNDATION_EXPORT NSString * const NSFileImmutable;

FOUNDATION_EXPORT NSString * const NSFileAppendOnly;

FOUNDATION_EXPORT NSString * const NSFileCreationDate;

FOUNDATION_EXPORT NSString * const NSFileOwnerAccountID;

FOUNDATION_EXPORT NSString * const NSFileGroupOwnerAccountID;


파일 존재 확인

NSFileManage * fileManager = [NSFileManager defaultManager];
NSString *extDir = @"/test.txt";
if (fileManager fileExistAtPath:extDir] == YES){
  // 파일 존재 
} else {
  // 파일 없음 


 파일 내용 비교

NSFileManage * fileManager = [NSFileManager defaultManager];
NSString *firstFile = @"/test.txt";
NSString *secondFile = "@"/my.txt";

if (fileManager contentEqualAtPath:firstFile andPath:secondFile] == YES){
  // 파일 내용 같음 
} else {
  // 파일 내용 다름 
}


파일 이동 또는 이름 변경

NSFileManage * fileManager = [NSFileManager defaultManager];
NSString *firstFile = @"/test.txt";
NSString *secondFile = "@"/my.txt";

if (fileManager moveItemAtPath:firstFile toPath:secondFile error:NULL] == YES){
  // 파일 이동/이름 변경 성공
} else {
  // 파일 이동/이름 변경 실패
}

 
파일 복사

NSFileManage * fileManager = [NSFileManager defaultManager];
NSString *firstFile = @"/test.txt";
NSString *secondFile = "@"/my.txt";

if (fileManager copyAtPath:firstFile toPath:secondFile error:NULL] == YES){
  // 파일 복사 성공
} else {
  // 파일 복사 실패
}


파일 읽기(NSData 타입)

NSFileManage * fileManager = [NSFileManager defaultManager];
NSString *firstFile = @"/test.txt";
NSData * dataBuffer = [fileManager contentsAtPath:firstFile]; 

 
파일 생성(NSData 타입 읽고 쓰기 -복사 기존 파일 존재시 overwrite 된다.)

NSFileManage * fileManager = [NSFileManager defaultManager];
NSString *firstFile = @"/test.txt";
NSData * dataBuffer = [fileManager contentsAtPath:firstFile]; 
NSString *secondFile = @"/my.txt"
[fileManager createFileAtPath:secondFile contents:dataBuffer attributes:NULL]; 


      
Posted by k_ben