NSFileManager 클래스 분석
5869 단어 NSFileManager 분석
프로그램마다 샌드박스가 있는데, 이를 통해 파일을 읽거나 작성할 수 있다.샌드박스에 기록된 파일은 프로그램이 업데이트된 경우에도 프로그램 프로세스에서 안정적으로 유지됩니다.
1. 파일 관리자 만들기
- NSFileManager *fileManager = [NSFileManagerdefaultManager];
2. 디렉토리 만들기
- [[NSFileManager defaultManager] createDirectoryAtPath: [NSString stringWithFormat:@"%@/myFolder", NSHomeDirectory()] attributes:nil];
3. 문자열을 파일 디렉터리에 쓰기
문자열 내용
- NSString *filePath= [documentsDirectory stringByAppendingPathComponent:@"file1.txt"];
- NSString *str= @"iPhoneDeveloper Tips
http://iPhoneDevelopTips,com";
str 파일 디렉토리에 쓰기:
- NSError *error; [str writeToFile:filePath atomically:YES encoding:NSUTF8StringEncoding error:&error];
4. 파일의 이름을 바꾸려면 파일을 새로운 경로 아래로 옮겨야 합니다.다음 코드는 우리가 원하는 대상 파일의 경로를 만들고 이동 파일을 요청하며 이동 후에 파일 디렉터리를 표시합니다.
- //
- NSString *filePath2= [documentsDirectory stringByAppendingPathComponent:@"file2.txt"];
- [fileMgr moveItemAtPath:filePath toPath:filePath2 error:&error];
- //
- if ([fileMgr moveItemAtPath:filePath toPath:filePath2 error:&error] != YES)
- NSLog(@"Unable to move file: %@", [error localizedDescription]);
- //
- NSLog(@"Documentsdirectory: %@", [fileMgr contentsOfDirectoryAtPath:documentsDirectoryerror:&error]);
5. 파일 삭제
- // filePath2
- if ([fileMgr removeItemAtPath:filePath2 error:&error] != YES)
- NSLog(@"Unable to delete file: %@", [error localizedDescription]);
- // NSLog(@"Documentsdirectory: %@", [fileMgr contentsOfDirectoryAtPath:documentsDirectoryerror:&error]);
파일이 삭제되면 예상한 대로 파일 디렉터리가 자동으로 비워집니다. 이 예들은 파일 처리의 일부분에 불과합니다.
다음 코드를 통해 디렉터리 내의 파일과 폴더 목록을 얻을 수 있습니다.
- NSFileManager *fileManager = [NSFileManager defaultManager];
- // Documents
- NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
- NSString *documentDir = [documentPaths objectAtIndex:0];
- NSError *error = nil;
- NSArray *fileList = [[NSArray alloc] init];
- //fileList
- fileList = [fileManager contentsOfDirectoryAtPath:documentDir error:&error];
다음 코드는 지정한 폴더의 모든 하위 폴더 이름을 열거할 수 있습니다
- NSMutableArray *dirArray = [[NSMutableArray alloc] init];
- BOOL isDir = NO;
- // fileList
- for (NSString *file in fileList) {
- NSString *path = [documentDir stringByAppendingPathComponent:file];
- [fileManager fileExistsAtPath:path isDirectory:(&isDir)];
- if (isDir) {
- [dirArray addObject:file];
- } isDir = NO; }
- NSLog(@"Every Thing in the dir:%@",fileList);
- NSLog(@"All folders:%@",dirArray);
-
-