OC中的文件操作

1.NSString
獲取沙盒的主目錄
NSString *homePath=NSHomeDirectory();
2.獲取沙盒下的Documents目錄
NSString *documents=[homePath stringByAppendingPathComponent:@"Documents"];


3.獲取路徑的組成部分
[path pathComponents];
路徑的最後一個組成部分
[path lastPathComponent];
追加文件或目錄  這個經常用開頭不要加斜槓
[path stringByAppendingPathComponent:@"app.text"];
刪除最後部分的組成部分
[path stringByDeletingLastPathComponent];
取路徑最後部分的擴展名
[path pathExtension];
[path stringByAppendingPathExtension:@"jpg"];


==================================================


4.NSFileManager主要對文件進行管理,主要有如下功能
NSFileManager *fileManager=[NSFileManager defaultManager];
創建      複製     刪除     剪貼
create   copy    remove   move
createFileAtPath 創建文件
createDirectoryAtPath  創建文件夾
讀取 contentsAtPath
文件是否存在 fileExistsAtPath


5.刪除文件
bool isExist=[fm fileExistsAtPath:path];
if(isExist)
{
bool success=[fm removeItemAtPath:path error:nil];
if(success)
{
NSLog(@"remove success!");
}
}


6.獲取文件大小
NSDictionary *attrDic=[fileManager attributesOfItemAtPath:path error:nil];
NSNumber *fileSize=[attrDic objectForKey:NSFileSize];
NSInteger *p=[fileSize intValue];


7.數組、字典、字符串、NSData都是容納數據的,他們都有一個writeToFile方法,將數據寫入文件
NSString *s1=@"1424";
NSString *s2=@"student"
NSArray *array=[NSArray arrayWithObjects:s1,s2,nil];
[array writeToFile:path atomically:YES];


8.數組讀文件
NSArray *array=[[NSArray alloc]initWithContentsOfFile:path];
NSArray *array=[NSArray arrayWithContentsOfFile;path];


=============================================================


9.NSFileHandle
創建:
NSFileHandle fileHandle=[NSFileHandle fileHandleForReadingAtPath:path];
只讀操作
writing
只寫操作
updating
可讀可寫


10.讀取文件全部數據
availableData
寫入數據
writeData


11.offsetInFile   獲取當前文件的偏移量
seekToFileOffset  跳到指定文件的偏移量
seekToEndOfFile  使偏移量跳到文件末尾
readDataToEndOfFile  從當前偏移量讀取到文件末尾
readDataOfLength 從當前偏移量開始讀取指定的長度數據


12.數據的轉換
NSString 轉換成NSData
NSData *stringData=[str dataUsingEncoding:NSUTF8StringEncoding];


NSData 轉換成 NSString
[fileHandle seekToFileOffset:0];
        NSData *data2=[fileHandle availableData];
        NSString *string2=[[NSString alloc]initWithData:data2 encoding:NSUTF8StringEncoding];


13.獲取目錄下文件總大小
NSArray *pathArray=[fileManager subpathAtPath:path];
long sum;
for(NSString *subPath in pathArray)
{
NSString *paths=[path stringByAppendingPathComponent:subPath];
NSDictionary *attrDic=[fileManager attributesOfItemAtPath:paths error:nil];
NSNumber *fileSize=[attrDic objectForKey:NSFileSize];
sum+=[fileSize intValue];
}


14.數組只能將如下數據類型寫入文件,如果包含其他對象,將寫入失敗
   數組、字典寫入的文件叫屬性列表(plist)文件,可以用xcode打開編輯


注意事項:
(1)、刪除、讀取或寫入,都需要用NSFileManager 用create方法進行路徑或文件的創建
    而剪貼或複製則不需要
(2)、牢記寫入時,如果當前位置有內容,則新內容會覆蓋當前的內容
(3)、NSFileManager主要進行文件的刪除、剪貼、複製  而NSFileHandle主要進行文件的讀寫
(4)、文件進行刪除複製或者剪貼操作時,下次操作時記得重新定義操作句柄
(4)、NSFileHandle主要是能在文件內定位
(5)、使用NSFileHandle記得關閉  [fileHandle closeFile];
(6)、牢記當前的指針 記得fileHandle的時效型

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章