亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > iOS > 正文

舉例詳解iOS開發過程中的沙盒機制與文件

2020-07-26 03:34:05
字體:
來源:轉載
供稿:網友

iOS沙盒機制
 iOS應用程序只能在為該改程序創建的文件系統中讀取文件,不可以去其它地方訪問,此區域被成為沙盒,所以所有的非代碼文件都要保存在此,例如圖像,圖標,聲音,映像,屬性列表,文本文件等。

  • 每個應用程序都有自己的存儲空間
  • 應用程序不能翻過自己的圍墻去訪問別的存儲空間的內容

打開模擬器沙盒目錄
方法1、可以設置顯示隱藏文件,然后在Finder下直接打開。設置查看隱藏文件的方法如下:打開終端,輸入命名
<p class="p1">顯示Mac隱藏文件的命令:

復制代碼 代碼如下:
defaults write com.apple.finder AppleShowAllFiles -bool true</p><p class="p1">

隱藏Mac隱藏文件的命令:
復制代碼 代碼如下:
defaults write com.apple.finder AppleShowAllFiles -bool false</p>

現在能看到資源庫文件夾了。

打開資源庫后找到/Application Support/iPhone Simulator/文件夾。這里面就是模擬器的各個程序的沙盒目錄了。

方法2、這種方法更方便,在Finder上點->前往  然后按住"option"鍵,就會出現"資源庫",其他同上

目錄結構
默認情況下,每個沙盒含有3個文件夾:Documents, Library 和 tmp。因為應用的沙盒機制,應用只能在幾個目錄下讀寫文件
Documents:蘋果建議將程序中建立的或在程序中瀏覽到的文件數據保存在該目錄下,iTunes備份和恢復的時候會包括此目錄
Library:存儲程序的默認設置或其它狀態信息;
Library/Caches:存放緩存文件,iTunes不會備份此目錄,此目錄下文件不會在應用退出刪除
tmp:提供一個即時創建臨時文件的地方。

iTunes在與iPhone同步時,備份所有的Documents和Library文件。
iPhone在重啟時,會丟棄所有的tmp文件。
這是上面提到的三個目錄 :Documents、Library、 tmp

幾個常用的代碼示例:
1、獲取程序的Home目錄 

復制代碼 代碼如下:

NSString *homeDirectory = NSHomeDirectory();   
NSLog(@"path:%@", homeDirectory);
  
 
2、獲取document目錄 
復制代碼 代碼如下:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);   
NSString *path = [paths objectAtIndex:0];   
NSLog(@"path:%@", path); 
  
 
3、獲取Cache目錄 
復制代碼 代碼如下:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);   
NSString *path = [paths objectAtIndex:0];   
NSLog(@"%@", path);   

 
4、獲取Library目錄 
復制代碼 代碼如下:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);   
NSString *path = [paths objectAtIndex:0];   
NSLog(@"%@", path); 
 
 
5、獲取Tmp目錄 
復制代碼 代碼如下:

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

 
6、寫入文件 
復制代碼 代碼如下:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);   
    NSString *docDir = [paths objectAtIndex:0];   
    if (!docDir) {   
        NSLog(@"Documents 目錄未找到");           
    }   
    NSArray *array = [[NSArray alloc] initWithObjects:@"內容",@"content",nil];   
    NSString *filePath = [docDir stringByAppendingPathComponent:@"testFile.txt"];   
    [array writeToFile:filePath atomically:YES]; 

 
7、寫入文件 
復制代碼 代碼如下:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);   
    NSString *docDir = [paths objectAtIndex:0];   
    NSString *filePath = [docDir stringByAppendingPathComponent:@"testFile.txt"];   
    NSArray *array = [[NSArray alloc]initWithContentsOfFile:filePath];   
    NSLog(@"%@", array); 

8、判斷一個文件是否存在,傳入全路徑(fileExistsAtPath)

復制代碼 代碼如下:

// 創建文件管理器 
NSFileManager * fileManager = [NSFileManager defaultManager]; 
 
NSString * documents = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)lastObject]; 
NSString * filePath = [documents stringByAppendingPathComponent:@"test"]; 
 
    // 判斷一個文件是否存在,傳入全路徑 
    if ([fileManager fileExistsAtPath:filePath]) { 
        NSLog(@"it is exit"); 
    } 

9、在Documents里創建目錄

復制代碼 代碼如下:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);   
   NSString *documentsDirectory = [paths objectAtIndex:0];   
   NSLog(@"documentsDirectory%@",documentsDirectory);   
   NSFileManager *fileManager = [NSFileManager defaultManager];   
   NSString *testDirectory = [documentsDirectory stringByAppendingPathComponent:@"test"];   
   // 創建目錄  
   [fileManager createDirectoryAtPath:testDirectory withIntermediateDirectories:YES attributes:nil error:nil];

10、在目錄下創建文件

復制代碼 代碼如下:

NSString *testPath = [testDirectory stringByAppendingPathComponent:@"test00.txt"];   
NSString *testPath2 = [testDirectory stringByAppendingPathComponent:@"test22.txt"];   
NSString *testPath3 = [testDirectory stringByAppendingPathComponent:@"test33.txt"];   
 
 
NSString *string = @"寫入內容,write String"; 
[fileManager createFileAtPath:testPath contents:[string  dataUsingEncoding:NSUTF8StringEncoding] attributes:nil]; 
[fileManager createFileAtPath:testPath2 contents:[string  dataUsingEncoding:NSUTF8StringEncoding] attributes:nil]; 
[fileManager createFileAtPath:testPath3 contents:[string  dataUsingEncoding:NSUTF8StringEncoding] attributes:nil]; 

11、獲取目錄列里所有文件名
兩種方法獲?。簊ubpathsOfDirectoryAtPath 和subpathsAtPath

復制代碼 代碼如下:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);   
NSString *documentsDirectory = [paths objectAtIndex:0];   
NSLog(@"documentsDirectory%@",documentsDirectory);   
NSFileManager *fileManage = [NSFileManager defaultManager];   
NSString *myDirectory = [documentsDirectory stringByAppendingPathComponent:@"test"];   
NSArray *file = [fileManage subpathsOfDirectoryAtPath: myDirectory error:nil];  
NSLog(@"%@",file);   
NSArray *files = [fileManage subpathsAtPath: myDirectory ];  
NSLog(@"%@",files); 

12、fileManager使用操作當前目錄

復制代碼 代碼如下:

//創建文件管理器 
    NSFileManager *fileManager = [NSFileManager defaultManager]; 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0]; 
    //更改到待操作的目錄下 
    [fileManager changeCurrentDirectoryPath:[documentsDirectory stringByExpandingTildeInPath]]; 
    //創建文件fileName文件名稱,contents文件的內容,如果開始沒有內容可以設置為nil,attributes文件的屬性,初始為nil 
    NSString * fileName = @"testFileNSFileManager.txt"; 
    NSArray *array = [[NSArray alloc] initWithObjects:@"hello world",@"hello world1", @"hello world2",nil]; 
    [fileManager createFileAtPath:fileName contents:array attributes:nil]; 

13、刪除文件
復制代碼 代碼如下:

[fileManager removeItemAtPath:fileName error:nil]; 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧洲亚洲女同hd| 岛国av一区二区| 欧美裸体xxxx极品少妇| 国产精品热视频| 欧美日韩中文字幕日韩欧美| 久久久亚洲精品视频| 8090成年在线看片午夜| 国产精品人成电影在线观看| 国产婷婷色综合av蜜臀av| 欧美在线视频网| 亚洲第一区第一页| 91色视频在线导航| 亚洲精品美女视频| 91精品国产电影| 国产成人综合亚洲| 日韩av一区二区在线观看| 日本午夜精品理论片a级appf发布| 在线播放国产一区二区三区| 日韩电影中文字幕在线观看| 亚洲福利小视频| 国产成人精品免费久久久久| 亚洲第一页自拍| 日韩大片在线观看视频| 狠狠躁18三区二区一区| 国内精品久久久| 国产精品视频精品视频| 91精品国产91久久久久福利| 欧美最顶级丰满的aⅴ艳星| 色妞欧美日韩在线| 欧美大荫蒂xxx| 日韩美女视频免费在线观看| 亚洲欧洲在线播放| 国产视频精品va久久久久久| 欧美伊久线香蕉线新在线| 红桃视频成人在线观看| 91高潮精品免费porn| 欧美巨大黑人极品精男| 国产成人精品一区| 欧美日韩国产在线看| 日韩精品免费看| 神马国产精品影院av| 欧美性少妇18aaaa视频| 色与欲影视天天看综合网| 日韩欧美国产网站| 久久人人爽人人爽人人片av高清| 欧美大胆在线视频| 九九热视频这里只有精品| 色综合久久中文字幕综合网小说| 日韩av免费在线| 国产69久久精品成人看| 日本久久久久久久| 福利精品视频在线| 亚洲色图第一页| 亚洲精品乱码久久久久久按摩观| 日韩在线观看免费全| 久久天天躁狠狠躁夜夜躁| 国产精品久久久久久久久男| 欧美国产第一页| 国产欧美日韩视频| 久久综合免费视频| 欧美插天视频在线播放| 亚洲欧洲自拍偷拍| 精品国产一区二区三区久久狼5月| 国产美女扒开尿口久久久| 亚洲人成免费电影| 国产精品v日韩精品| 91亚洲精品在线| 欧美激情中文字幕在线| 成人福利视频在线观看| 国产福利成人在线| 精品久久久久久久大神国产| 亚洲精品免费网站| 久久久久久久久电影| 色妞欧美日韩在线| 欧美高清在线视频观看不卡| 欧美主播福利视频| 国产精品第10页| 美女999久久久精品视频| 一本大道亚洲视频| 国产一区二区三区在线观看网站| 91中文精品字幕在线视频| 亚洲自拍偷拍色片视频| 欧美成人激情视频免费观看| 国产精品女视频| 日韩精品日韩在线观看| 国产精品99久久99久久久二8| 欧美精品在线观看| 欧美精品在线免费播放| 日韩中文字幕在线精品| 亚洲视频第一页| 色黄久久久久久| 91情侣偷在线精品国产| 91po在线观看91精品国产性色| 国产午夜精品免费一区二区三区| 国产日韩欧美中文在线播放| 美女av一区二区三区| 国色天香2019中文字幕在线观看| 亚洲视频日韩精品| 国产亚洲欧美一区| 色播久久人人爽人人爽人人片视av| 久久天天躁狠狠躁夜夜躁2014| 国产精品视频一区国模私拍| 日韩欧美在线第一页| 国产精品久久91| 欧美激情中文字幕在线| 韩国福利视频一区| 精品久久香蕉国产线看观看亚洲| 国产一区二区三区在线| 不卡在线观看电视剧完整版| 亚洲一区二区三区乱码aⅴ| 国模精品视频一区二区| 亚洲第一视频网站| 国产婷婷成人久久av免费高清| 亚洲成人精品视频在线观看| 色婷婷av一区二区三区在线观看| 有码中文亚洲精品| 日韩欧美国产黄色| 久久久精品久久久久| 超碰精品一区二区三区乱码| 欧美日韩在线观看视频小说| 欧美激情欧美激情| 欧美一级免费视频| 精品国偷自产在线| 欧美国产第一页| 亚洲国产精品嫩草影院久久| 久久中文精品视频| 国产亚洲精品美女久久久久| 欧美怡春院一区二区三区| 亚洲精品国产精品国自产在线| 国外成人性视频| 国产精品视频免费在线观看| 日韩一区二区av| 国产精品久久久久久久久久久久| 中文字幕av日韩| 欧美激情免费在线| 亚洲综合在线中文字幕| 久久这里只有精品视频首页| 国产精品爽黄69天堂a| 久久久99久久精品女同性| 日韩www在线| 久久影视免费观看| 欧美在线视频免费| 亚洲视频欧洲视频| 成人激情av在线| 成人美女av在线直播| 国产视频亚洲视频| 成人免费视频xnxx.com| 国产z一区二区三区| 怡红院精品视频| 米奇精品一区二区三区在线观看| 欧美激情视频在线| 国产香蕉97碰碰久久人人| 不卡av电影院| 国产精品欧美激情| 日本中文字幕不卡免费| 51色欧美片视频在线观看| 国产精品精品国产| 亚洲欧美在线x视频| 欧美夫妻性生活xx| 日韩欧美在线免费| 中文字幕亚洲无线码在线一区| 97视频在线观看视频免费视频| 亚洲国产欧美一区| 欧美疯狂做受xxxx高潮|