关于iOS沙盒的目录结构和获取
生活随笔
收集整理的這篇文章主要介紹了
关于iOS沙盒的目录结构和获取
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
沙盒目錄結構
1. /xxName.app 應用程序的程序包目錄,包含應用程序的本身。
2. /Documents/ 保存應用程序的重要數據文件和用戶數據文件等。用戶數據基本上都放在這個位置(例如從網上下載的圖片或音樂文件),該文件夾在應用程序更新時會自動備份,在連接iTunes時也可以自動同步備份其中的數據
3. /Library 目錄:這個目錄下有兩個子目錄:
可創建子文件夾。可以用來放置您希望被備份但不希望被用戶看到的數據。該路徑下的文件夾,除Caches以外,都會被iTunes備份
4. Library/Caches(緩存) 保存應用程序使用時產生的支持文件和緩存文件(保存應用程序再次啟動過程中需要的信息),還有日志文件最好也放在這個目錄。iTunes 同步時不會備份該目錄并且可能被其他工具清理掉其中的數據。
5. Library/Preferences (偏好)保存應用程序的偏好設置文件(使用 NSUserDefaults( 這個就是放這) 類設置時創建,不應該手動創建;連iTunes可備份,在應用程序更新時會自動備份;plist文件就放在此處)。
6. /tmp/ 保存應用運行時所需要的臨時數據,該路徑下的文件不會被iTunes備份。iphone 重啟時,會自動清除該目錄下所有文件;例如錄制視頻完成后是放在/temp/;所以應該將視頻文件從該文件夾轉移到相冊中,否則視頻文件就會被系統清理掉
iTunes在與iPhone同步時,備份所有的Documents和Library文件。
1. /xxName.app 應用程序的程序包目錄,包含應用程序的本身。
2. /Documents/ 保存應用程序的重要數據文件和用戶數據文件等。用戶數據基本上都放在這個位置(例如從網上下載的圖片或音樂文件),該文件夾在應用程序更新時會自動備份,在連接iTunes時也可以自動同步備份其中的數據
3. /Library 目錄:這個目錄下有兩個子目錄:
可創建子文件夾。可以用來放置您希望被備份但不希望被用戶看到的數據。該路徑下的文件夾,除Caches以外,都會被iTunes備份
4. Library/Caches(緩存) 保存應用程序使用時產生的支持文件和緩存文件(保存應用程序再次啟動過程中需要的信息),還有日志文件最好也放在這個目錄。iTunes 同步時不會備份該目錄并且可能被其他工具清理掉其中的數據。
5. Library/Preferences (偏好)保存應用程序的偏好設置文件(使用 NSUserDefaults( 這個就是放這) 類設置時創建,不應該手動創建;連iTunes可備份,在應用程序更新時會自動備份;plist文件就放在此處)。
6. /tmp/ 保存應用運行時所需要的臨時數據,該路徑下的文件不會被iTunes備份。iphone 重啟時,會自動清除該目錄下所有文件;例如錄制視頻完成后是放在/temp/;所以應該將視頻文件從該文件夾轉移到相冊中,否則視頻文件就會被系統清理掉
iTunes在與iPhone同步時,備份所有的Documents和Library文件。
沙盒目錄結構的詳情可以參考蘋果官方的說明
apple官方說明
我們來測試一下目錄如何獲取,代碼如下:
- (void)getPath{//獲取沙盒根目錄路徑NSString*homeDir = NSHomeDirectory();NSLog(@"homedir: %@",homeDir);// 獲取Documents目錄路徑NSString*docDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES) firstObject];NSLog(@"docDir: %@",docDir);//獲取Library的目錄路徑NSString*libDir = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,NSUserDomainMask,YES) lastObject];NSLog(@"libDir: %@",libDir);// 獲取cache目錄路徑NSString*cachesDir = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask,YES) firstObject];NSLog(@"cachesDir: %@",cachesDir);// 獲取tmp目錄路徑NSString*tmpDir =NSTemporaryDirectory();NSLog(@"tmpDir: %@",tmpDir);//獲取應用的xx.app目錄NSBundle *bundle = [NSBundle mainBundle];NSString *strAppPath = [bundle bundlePath];NSLog(@"appDir: %@",strAppPath); }
輸出的結果如下:
homedir: /var/mobile/Containers/Data/Application/E24754D2-22F8-4E8E-8A6C-2B18561DB5ADdocDir: /var/mobile/Containers/Data/Application/E24754D2-22F8-4E8E-8A6C-2B18561DB5AD/DocumentslibDir: /var/mobile/Containers/Data/Application/E24754D2-22F8-4E8E-8A6C-2B18561DB5AD/LibrarycachesDir: /var/mobile/Containers/Data/Application/E24754D2-22F8-4E8E-8A6C-2B18561DB5AD/Library/CachestmpDir: /private/var/mobile/Containers/Data/Application/E24754D2-22F8-4E8E-8A6C-2B18561DB5AD/tmp/appDir: /private/var/mobile/Containers/Bundle/Application/A5E6DC61-7AAA-467F-BC63-5BEDB8DDB113/sensorTest.app總結
以上是生活随笔為你收集整理的关于iOS沙盒的目录结构和获取的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iOS Hacker Xcode7免登录
- 下一篇: iOS Hacker LLDB 和 d