NSFileManager 클래스 분석

5869 단어 NSFileManager 분석
아이폰 파일 시스템: 파일 생성, 이름 바꾸기, 삭제, NSFile Manager에는 단어 라이브러리 디렉터리 조회, 생성, 이름 바꾸기, 디렉터리 삭제, 파일 속성 가져오기/설정 방법 (읽기, 쓰기 가능 등) 이 포함되어 있습니다.
프로그램마다 샌드박스가 있는데, 이를 통해 파일을 읽거나 작성할 수 있다.샌드박스에 기록된 파일은 프로그램이 업데이트된 경우에도 프로그램 프로세스에서 안정적으로 유지됩니다.
1. 파일 관리자 만들기

  
  
  
  
  1. NSFileManager *fileManager = [NSFileManagerdefaultManager]; 

 
2. 디렉토리 만들기

  
  
  
  
  1. [[NSFileManager defaultManager] createDirectoryAtPath: [NSString stringWithFormat:@"%@/myFolder", NSHomeDirectory()] attributes:nil]; 

 
3. 문자열을 파일 디렉터리에 쓰기
문자열 내용

  
  
  
  
  1. NSString *filePath= [documentsDirectory stringByAppendingPathComponent:@"file1.txt"]; 
  2. NSString *str= @"iPhoneDeveloper Tips
    http://iPhoneDevelopTips,com"

str 파일 디렉토리에 쓰기:

  
  
  
  
  1. NSError *error; [str writeToFile:filePath atomically:YES encoding:NSUTF8StringEncoding error:&error]; 

 
4. 파일의 이름을 바꾸려면 파일을 새로운 경로 아래로 옮겨야 합니다.다음 코드는 우리가 원하는 대상 파일의 경로를 만들고 이동 파일을 요청하며 이동 후에 파일 디렉터리를 표시합니다.

  
  
  
  
  1. //  
  2. NSString *filePath2= [documentsDirectory stringByAppendingPathComponent:@"file2.txt"]; 
  3. [fileMgr moveItemAtPath:filePath toPath:filePath2 error:&error]; 
  4. //  
  5. if ([fileMgr moveItemAtPath:filePath toPath:filePath2 error:&error] != YES) 
  6. NSLog(@"Unable to move file: %@", [error localizedDescription]); 
  7. //  
  8. NSLog(@"Documentsdirectory: %@", [fileMgr contentsOfDirectoryAtPath:documentsDirectoryerror:&error]); 

 
5. 파일 삭제

  
  
  
  
  1. // filePath2  
  2. if ([fileMgr removeItemAtPath:filePath2 error:&error] != YES) 
  3. NSLog(@"Unable to delete file: %@", [error localizedDescription]); 
  4. //  NSLog(@"Documentsdirectory: %@", [fileMgr contentsOfDirectoryAtPath:documentsDirectoryerror:&error]); 

파일이 삭제되면 예상한 대로 파일 디렉터리가 자동으로 비워집니다. 이 예들은 파일 처리의 일부분에 불과합니다.
다음 코드를 통해 디렉터리 내의 파일과 폴더 목록을 얻을 수 있습니다.

  
  
  
  
  1. NSFileManager *fileManager = [NSFileManager defaultManager]; 
  2. // Documents  
  3. NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
  4. NSString *documentDir = [documentPaths objectAtIndex:0]; 
  5. NSError *error = nil; 
  6. NSArray *fileList = [[NSArray alloc] init]; 
  7. //fileList  
  8. fileList = [fileManager contentsOfDirectoryAtPath:documentDir error:&error]; 

다음 코드는 지정한 폴더의 모든 하위 폴더 이름을 열거할 수 있습니다

  
  
  
  
  1. NSMutableArray *dirArray = [[NSMutableArray alloc] init]; 
  2. BOOL isDir = NO; 
  3. // fileList  
  4. for (NSString *file in fileList) { 
  5. NSString *path = [documentDir stringByAppendingPathComponent:file]; 
  6. [fileManager fileExistsAtPath:path isDirectory:(&isDir)]; 
  7. if (isDir) { 
  8.     [dirArray addObject:file]; 
  9. } isDir = NO; } 
  10. NSLog(@"Every Thing in the dir:%@",fileList); 
  11. NSLog(@"All folders:%@",dirArray); 
  12.  
  13.   

좋은 웹페이지 즐겨찾기