[Objective-C] 013_檔案系統(File System)

來源:互聯網
上載者:User

標籤:

  在前面三篇關於資料持久化,我們都用涉及到檔案(plist檔案,資料庫檔案),它們都是把它們儲存在document目錄下。iOS的檔案機制是沙箱機制,應用只能訪問自己應用目錄下的檔案。iOS應用產生的內容,像、檔案、緩衝內容等都必須儲存在自己的沙箱內。預設情況下,每個沙箱含有3個檔案夾:Documents, Library 和 tmp。Library包含Caches、Preferences目錄。

 

Documents:蘋果建議將程式建立產生的檔案以及應用瀏覽產生的檔案資料儲存在該目錄下,iTunes備份和恢複的時候會包括此目錄
Library:儲存程式的預設設定或其它狀態資訊;
Library/Caches:存放快取檔案,儲存應用的持久化資料,用於應用升級或者應用關閉後的資料儲存,不會被itunes同步,所以為了減少同步的時間,可以考慮將一些比較大的檔案而又不需要備份的檔案放到這個目錄下。
tmp:提供一個即時建立臨時檔案的地方,但不需要持久化,在應用關閉後,該目錄下的資料將刪除,也可能系統在程式不啟動並執行時候清除。

 

我們實際中要如何來或取沙箱,如何在沙箱裡面進行相應的操作,下面一一分解。

1.擷取app的沙箱根目錄

NSString *appRootDir=NSHomeDirectory();NSLog(@"我的沙箱路徑根路徑------》: %@",appRootDir);

2.擷取Documents目錄路徑

//第一種NSString *appRootDir=NSHomeDirectory();NSLog(@"我的沙箱路徑根路徑------》: %@",appRootDir);NSString *documentDir = [appRootDir stringByAppendingPathComponent:@"Documents"];NSLog(@"documentDir: -----》 %@",documentDir);    //第二種NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);NSString *documentsDirectory = [paths objectAtIndex:0];NSLog(@"documentsDirectory: -----》 %@",documentsDirectory);

3.擷取Library(包含Caches、Preferences)目錄路徑:

//第一種NSString *appRootDir=NSHomeDirectory();NSLog(@"我的沙箱路徑根路徑------》: %@",appRootDir);NSString *documentDir = [appRootDir stringByAppendingPathComponent:@"Library"];NSLog(@"documentDir: -----》 %@",documentDir);//第二種NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);NSString *libraryDirectory = [paths objectAtIndex:0];NSLog(@"libraryDirectory: -----》 %@",libraryDirectory);//CachesNSString *cachesPath = [libraryDirectory stringByAppendingString:@"Caches"];//PreferencesNSString *preferencesPath = [libraryDirectory stringByAppendingString:@"Preferences"];NSLog(@"cachesPath: -----》 %@",cachesPath);NSLog(@"preferencesPath: -----》 %@",preferencesPath);

4.擷取tmp目錄路徑:

//第一種NSString *appRootDir=NSHomeDirectory();NSLog(@"我的沙箱路徑根路徑------》: %@",appRootDir);NSString *documentDir = [appRootDir stringByAppendingPathComponent:@"tmp"];NSLog(@"documentDir: -----》 %@",documentDir);//第二種NSString *tmpDirectory = NSTemporaryDirectory();NSLog(@"tmpDirectory: -----》 %@",tmpDirectory);

5.建立檔案(tmp檔案夾中)

NSString *tmpDirectory = NSTemporaryDirectory();NSLog(@"tmpDirectory: -----》 %@",tmpDirectory);NSFileManager *fileManager = [NSFileManager defaultManager];NSString *testFilePath = [tmpDirectory stringByAppendingPathComponent:@"testFile.txt"];BOOL res=[fileManager createFileAtPath:testFilePath contents:nil attributes:nil];if (res) {    NSLog(@"測試檔案建立成功: %@" ,testFilePath);}else {    NSLog(@"測試檔案建立失敗");}

6.建立檔案夾

NSFileManager *fileManager = [NSFileManager defaultManager];NSString *testFolderDirectory = [documentsPath stringByAppendingPathComponent:@"Test"];// 建立目錄BOOL res=[fileManager createDirectoryAtPath:testFolderDirectory withIntermediateDirectories:YES attributes:nil error:nil];if (res) {    NSLog(@"Test檔案夾建立成功");}else {    NSLog(@"Test檔案夾建立失敗");}

7.刪除檔案

NSString *tmpDirectory = NSTemporaryDirectory();NSFileManager *fileManager = [NSFileManager defaultManager];NSString *testFilePath = [tmpDirectory stringByAppendingPathComponent:@"testFile.txt"];//判斷檔案是否存在if ([fileManager fileExistsAtPath:testFilePath]) {    BOOL res=[fileManager removeItemAtPath:testFilePath error:nil];    if (res) {        NSLog(@"testFile檔案刪除成功");    }else        NSLog(@"testFile檔案刪除失敗");}

8.寫入檔案

NSString *tmpDirectory = NSTemporaryDirectory();NSLog(@"tmpDirectory: -----》 %@",tmpDirectory);NSString *[email protected]"www.babybus.com SuperDo";NSString *testFilePath = [tmpDirectory stringByAppendingPathComponent:@"testFile.txt"];BOOL res=[content writeToFile:testFilePath atomically:YES encoding:NSUTF8StringEncoding error:nil];if (res) {    NSLog(@"testFile檔案寫入成功");}else {    NSLog(@"testFile檔案寫入失敗");}

以上是iOS 檔案的一些簡單常見操作。更多詳細內容請參考(https://developer.apple.com/library/ios/#documentation/FileManagement/Conceptual/FileSystemProgrammingGUide/FileSystemOverview/FileSystemOverview.html#//apple_ref/doc/uid/TP40010672-CH2-SW2)

 

 

本站文章為 寶寶巴士 SD.Team 原創,轉載務必在明顯處註明:(作者官方網站: 寶寶巴士 ) 
轉載自【寶寶巴士SuperDo團隊】 原文連結: http://www.cnblogs.com/superdo/p/4659923.html

 

 

[Objective-C] 013_檔案系統(File System)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.