ios檔案操作

來源:互聯網
上載者:User

標籤:style   blog   http   color   io   os   ar   strong   for   

IOS訪問沙箱目錄API

擷取程式目錄

  NSString *homePath = NSHomeDirectory();

 ~/Library/Application Support/iPhone Simulator/7.1/Applications/66095245-FD69-40D5-B3F5-9594A6DC6862

 

擷取Documents  Library  tmp  Library/Cache目錄

    NSArray *array = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);    NSString *documentPath = [array firstObject];    NSLog(@"%@",documentPath);        //Cache目錄    array = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);    NSString *cachesPath = [array firstObject];    NSLog(@"%@",cachesPath);        //Library    array = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,NSUserDomainMask,YES);    NSString *libraryPath = [array firstObject];    NSLog(@"%@",libraryPath);        //tmp    NSString *tmpPath = NSTemporaryDirectory();    NSLog(@"%@",tmpPath);

 

數組在檔案中的讀寫

   //寫入數組至檔案    NSArray *writeArray = @[@"張三",@"李四",@"王五"];    [writeArray writeToFile:[documentPath stringByAppendingPathComponent:@"test.txt"] atomically:YES];            //讀取檔案到數組    NSArray *readArray = [NSArray arrayWithContentsOfFile:[documentPath stringByAppendingPathComponent:@"test.txt"]];

atomically:如果為YES保證檔案的寫入原子性,會先建立一個臨時檔案,直到檔案內容寫入成功再匯入到目標檔案裡.

如果為NO,則直接寫入目標檔案裡.

 

通過NSFileManager進行檔案操作

通過NSFileManager進行檔案的建立

  //在Document下建立檔案夾和檔案    NSString *testDirectory = [documentPath stringByAppendingPathComponent:@"test"];        NSString *test1 = [testDirectory stringByAppendingPathComponent:@"test1.txt"];    NSString *test2 = [testDirectory stringByAppendingPathComponent:@"test2.txt"];    NSString *test3 = [testDirectory stringByAppendingPathComponent:@"test3.txt"];        NSFileManager *manager = [NSFileManager defaultManager];    [manager createDirectoryAtPath:testDirectory withIntermediateDirectories:YES attributes:nil error:nil];        NSString *text = @"你好,IOS";    [manager createFileAtPath:test1 contents:[text dataUsingEncoding:NSUTF8StringEncoding] attributes:nil];    [manager createFileAtPath:test2 contents:[text dataUsingEncoding:NSUTF8StringEncoding] attributes:nil];    [manager createFileAtPath:test3 contents:[text dataUsingEncoding:NSUTF8StringEncoding] attributes:nil];

 

通過NSFileManager進行檔案的遍曆

  //讀取所有的檔案名稱,兩種方法效果一樣    NSArray *files1 = [manager subpathsAtPath:testDirectory];    NSArray *files2 = [manager subpathsOfDirectoryAtPath:testDirectory error:nil];

 

通過NSFileManager操作目前的目錄

  [manager changeCurrentDirectoryPath:documentPath];    NSArray *fileArray = [[NSArray alloc] initWithObjects:@"hello world",@"hello world1", @"hello world2",nil];    [manager createFileAtPath:@"testFileNSFileManager.txt" contents:fileArray attributes:nil];    [manager createFileAtPath:@"testFileNSFileManager1.txt" contents:fileArray attributes:nil];

 

通過NSFileManager刪除檔案

  [manager removeItemAtPath:@"testFileNSFileManager1.txt" error:nil];

 

通過NSFileHandle進行檔案IO操作 

NSFileHandle不能進行檔案的建立,所以檔案建立還得通過NSFileManager,NSFileHandle開啟的檔案如果不存在將返回nil

  //在Document下建立三個檔案,將檔案1全部內容和檔案2部分內容複寫到檔案3,然後刪除檔案1;    NSArray *array = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);    NSString *documentPath = [array firstObject];        NSFileManager *manager = [NSFileManager defaultManager];        NSString *path1 = [documentPath stringByAppendingPathComponent:@"text1.txt"];    NSString *path2 = [documentPath stringByAppendingPathComponent:@"text2.txt"];    NSString *path3 = [documentPath stringByAppendingPathComponent:@"text3.txt"];        //建立3個檔案    [manager createFileAtPath:path1 contents:[@"hello from text1" dataUsingEncoding:NSUTF8StringEncoding] attributes:nil];    [manager createFileAtPath:path2 contents:[@"hello from text2" dataUsingEncoding:NSUTF8StringEncoding] attributes:nil];    [manager createFileAtPath:path3 contents:[@"hello from text3" dataUsingEncoding:NSUTF8StringEncoding] attributes:nil];            //擷取NSFileHandle對象    NSFileHandle *path1Handle = [NSFileHandle fileHandleForReadingAtPath:path1];    NSFileHandle *path2Handle = [NSFileHandle fileHandleForReadingAtPath:path2];    NSFileHandle *path3Handle = [NSFileHandle fileHandleForWritingAtPath:path3];            //IO讀寫    NSData *text1Data = [path1Handle readDataToEndOfFile];    NSData *text2Data = [path2Handle readDataOfLength:5];    //將text3檔案的檔案指標移動到最後    [path3Handle seekToEndOfFile];        NSMutableData *data = [NSMutableData dataWithData:text1Data];    [data appendData:text2Data];    [path3Handle writeData:data];        //關閉NSFileHandle對象    [path1Handle closeFile];    [path2Handle closeFile];    [path3Handle closeFile];        //刪除text1    [manager removeItemAtPath:path1 error:nil];

 

 NSBundle處理項目相關資源

 http://blog.csdn.net/iphoneing/article/details/5872610

 

ios檔案操作

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.