iOS應(yīng)用目錄結(jié)構(gòu)和操作

Paste_Image.png

home

/var/mobile/Applications/4DCF7000-BD28-4494-80DF-4F081C975EDC

Phone會為每一個應(yīng)用程序生成一個私有目錄,iOS7這個目錄位于:/var/mobile/Applications,隨機生成一個數(shù)字字母串作為目錄名,每一次應(yīng)用程序啟動時,這個字母數(shù)字串都是不同的。

    NSString *destPath = NSHomeDirectory();
    NSLog(@"NSHomeDirectory:   %@",destPath);

Documents

Documents:保存應(yīng)用運行時生成的需要持久化的數(shù)據(jù),iTunes會自動備份該目錄

(1) expandTilde:YES

"/var/mobile/Applications/4DCF7000-BD28-4494-80DF-4F081C975EDC/Documents"

    NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSLog(@"NSDocumentDirectory:   %@",documentPaths);
(2) expandTilde:NO

~/Documents

 NSArray *documentPathsNO = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, NO);
    NSLog(@"NSDocumentDirectory:   %@",documentPathsNO);

Cache

Libaray/Caches:存放緩存文件,iTunes不會備份此目錄,此目錄下文件不會在應(yīng)用退出刪除,一般存放體積比較大,不是很重要的資源

(1)expandTilde:YES

打印:
/var/mobile/Applications/4DCF7000-BD28-4494-80DF-4F081C975EDC/Library/Caches

    NSArray *cachePaths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
    NSLog(@"NSCachesDirectory: %@", cachePaths);
(2)expandTilde:NO

打?。?~/Library/Caches

    NSArray *cachePathsNO = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, NO);
    NSLog(@"cachePathsNO %@", cachePathsNO);

Library

Libaray:存儲程序的默認(rèn)設(shè)置和其他狀態(tài)信息,iTunes會自動備份該目錄

(1) expandTilde:YES

打?。?/var/mobile/Applications/4DCF7000-BD28-4494-80DF-4F081C975EDC/Library"

    NSArray *libraryPaths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
    NSLog(@"NSLibraryDirectory: %@", libraryPaths);
(2) expandTilde:NO

打印:~/Library

    NSArray *libraryPathsNO = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, NO);
    NSLog(@"libraryPathsNO: %@", libraryPathsNO);
(3) 獲取應(yīng)用的Preferences 目錄,不能直接獲取只能自行拼接 :

Libaray/Preferences:保存應(yīng)用的所有偏好設(shè)置,ios的Settings(設(shè)置)應(yīng)用會在該目錄中查找應(yīng)用的設(shè)置信息,iTunes會自動備份該目錄。

/var/mobile/Applications/4DCF7000-BD28-4494-80DF-4F081C975EDC/Library/Preferences

    NSString *preferencePath =[[libraryPaths lastObject] stringByAppendingPathComponent:@"Preferences"];
    NSLog(@"%@", preferencePath);

Tmp

tmp:保存應(yīng)用運行時所需的臨時數(shù)據(jù),使用完畢后再將相應(yīng)的文件從該目錄刪除,應(yīng)用沒有運行時,系統(tǒng)也可能會自動清理該目錄下的文件,iTunes不會同步該目錄,iPhone重啟時該目錄下的文件會丟失

(1) expandTilde:YES

/private/var/mobile/Applications/4DCF7000-BD28-4494-80DF-4F081C975EDC/tmp/

    NSString *tmpDir = NSTemporaryDirectory();
    NSLog(@"NSTemporaryDirectory: %@", tmpDir);

文件目錄的創(chuàng)建,讀取,移動,拷貝以及刪除

NSFileManager 是處理文件系統(tǒng)的 Foundation 框架的高級API。它抽象了 Unix 和 Finder 的內(nèi)部構(gòu)成,和 iCloud ubiquitous containers 一樣, 提供了創(chuàng)建,讀取,移動,拷貝以及刪除本地或者網(wǎng)絡(luò)驅(qū)動器上的文件或者目錄的方法。


https://developer.apple.com/library/ios/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/FileSystemOverview/FileSystemOverview.html#//apple_ref/doc/uid/TP40010672-CH2-SW2

NSFileManager http://nshipster.cn/nsfilemanager/
官方文檔

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容