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文件。
沙盒目錄結構的詳情可以參考蘋果官方的說明
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);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
(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=[NSBundlemainBundle];
NSString*strAppPath=[bundlebundlePath];
NSLog(@"appDir: %@",strAppPath);
}
輸出的結果如下:
homedir: /var/mobile/Containers/Data/Application/E24754D2-22F8-4E8E-8A6C-2B18561DB5AD
docDir: /var/mobile/Containers/Data/Application/E24754D2-22F8-4E8E-8A6C-2B18561DB5AD/Documents
libDir: /var/mobile/Containers/Data/Application/E24754D2-22F8-4E8E-8A6C-2B18561DB5AD/Library
cachesDir: /var/mobile/Containers/Data/Application/E24754D2-22F8-4E8E-8A6C-2B18561DB5AD/Library/Caches
tmpDir: /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
1
2
3
4
5
6
7
8
9
10
11
homedir:/var/mobile/Containers/Data/Application/E24754D2-22F8-4E8E-8A6C-2B18561DB5AD
docDir:/var/mobile/Containers/Data/Application/E24754D2-22F8-4E8E-8A6C-2B18561DB5AD/Documents
libDir:/var/mobile/Containers/Data/Application/E24754D2-22F8-4E8E-8A6C-2B18561DB5AD/Library
cachesDir:/var/mobile/Containers/Data/Application/E24754D2-22F8-4E8E-8A6C-2B18561DB5AD/Library/Caches
tmpDir:/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 沙盒的目录结构和获取的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: native字体尺寸自适应 react_
- 下一篇: 神盾特工hive_周末剧透:杰西卡·琼斯