1.文件的淺度遍歷與深度遍歷:
//NSFileManager * fm = [[NSFileManager alloc]init];//創建文件管理器//第一步創建一個文件管理器NSError * error= nil;//顯示路徑下的內容,作用類似于ls -a指令//返回值是把目錄下的內容放到NSArray中//淺度遍歷NSFileManager * fm = [NSFileManager defaultManager];NSArray * array = [fm contentsOfDirectoryAtPath:@"/Users/aaaaa/Desktop" error:&error];//成功返回nil錯誤返回失敗信息if(error){ NSLog(@"Error=%@",error); return -1;//代表函數返回(結束函數) //exit(1);//結束當前進程}else{ NSLog(@"array=%@",array);} //深度遍歷//可以顯示子目錄的內容NSArray * array1 = [fm subpathsOfDirectoryAtPath:@"/Users/aaaaa/Desktop" error:&error];if(error){ NSLog(@"Error=%@",error);}else{ NSLog(@"array1=%@",array1);}
2.創建目錄:
NSFileManager * fm = [NSFileManager defaultManager];NSError * error = nil;//當前路徑指的是可執行程序的路徑而不是代碼的路徑//創建目錄 返回值:創建成功返回YES 失敗返回NOBOOL ret = [fm createDirectoryAtPath:@"./hello2/world" //創建目錄的路徑 withIntermediateDirectories:YES//路徑不存在是否創建目錄 YES代表創建(會把不存在的目錄也創建) NO代表不創建 attributes:nil //文件屬性(權限),通常寫nil代表默認權限 error:&error];if(ret){ NSLog(@"success!");}else{ NSLog(@"error = %@",error);}
創建文件
NSFileManager * fm = [NSFileManager defaultManager];//創建文件BOOL ret = [fm createFileAtPath:@"./1.txt" //路徑以及文件名 contents:nil //要創建的文件的內容 nil代表空文件 若文件以及存在會覆蓋該文件 attributes:nil]; [fm fileExistsAtPath:@"./1.txt"]//判斷文件時候存在
3.拷貝文件/目錄:
NSFileManager * fm = [NSFileManager defaultManager];NSError * error = nil;//拷貝文件/目錄//第二個參數必須要寫全文件或者目錄名字BOOL ret = [fm copyItemAtPath:@"/Users/aaaaa/Desktop/string.c"//要復制的文件的路徑 toPath:@"./1.txt" //目的文件(文件名不要加空格)若以及存在會返回error error:&error];
4.移動(重命名)文件/目錄:
//重命名(移動)文件或目錄//重命名:就是修改文件路徑//如果文件/目錄存在 移動失敗ret = [fm moveItemAtPath:@"/Users/aaaaa/Desktop/" toPath:@"./1/1" //參數要寫全稱 error:&error];
5.刪除文件/目錄:
/刪除文件/目錄//謹慎使用(會直接刪除 不會丟到廢紙簍中)ret = [fm removeItemAtPath:@"./1.txt" error:&error];
6.NSData與字符串:
NSString * str = @"hello world";//將OC字符串轉換成NSData類型//NSData 文件緩沖區NSData * data = [str dataUsingEncoding:NSUTF8StringEncoding]; //將NSData類型轉換成NSString類型NSString * str2 = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
7.文件讀寫操作:
//文件讀寫操作//第一步打開文件//FILE * fp = fopen("./1.txt","w");文件指針//文件句柄//以只讀方式打開NSFileHandle * fh = [NSFileHandle fileHandleForReadingAtPath:@"/Users/aaaaa/Desktop/string.c"]; //以只寫方式打開fh = [NSFileHandle fileHandleForWritingAtPath:@"/Users/aaaaa/Desktop/string.c"];//以讀寫方式打開fh = [NSFileHandle fileHandleForUpdatingAtPath:@"/Users/aaaaa/Desktop/string.c"]; //OC的打開函數都會把偏移量定位在未見首//若想在文件尾進行操作,可將文件偏移量定位到文件尾[fh seekToEndOfFile];//定位到文件尾 NSData * data1 = [fh readDataOfLength:10];//讀取指定個數字節NSData * data2 = [fh readDataToEndOfFile];//從當前偏移量讀到文件尾[fh seekToFileOffset:10];//把文件偏移量定位到10字節
8.向文件中寫數據:
NSFileHandle * fh2 = [NSFileHandle fileHandleForUpdatingAtPath:@"./1.txt"];NSString * str = @"hello world";NSData * data = [str dataUsingEncoding:NSUTF8StringEncoding];//寫數據必須要轉化為NSData[fh2 writeData:data];
9.獲取文件長度:
//通過文件管理器獲取文件屬性然后通過字典獲取文件長度NSFileManager * fm = [NSFileManager defaultManager];NSDictionary * dict = [fm attributesOfItemAtPath:@"/Users/aaaaa/Desktop/string.c" error:&error];//方法一:NSLog(@"size = %lld",[dict fileSize]);//方法二:NSLog(@"%@",[dict objectForKey:NSFileSize]);
新聞熱點
疑難解答