iOS之沙盒機制與文件

1.iOS沙盒機制

1.1、iOS應用程序只能在為該程序中創建的文件系統中讀取文件,不可以去其它目錄進行訪問,這個區域被稱之為沙盒。

1.2、每個APP只能在自己APP的沙盒進行讀寫文件,不能訪問其他APP的沙盒文件。

1.3、iOS模擬器沙盒地址為 資源庫/Application Support/iPhone Simulator/**。

2.沙盒目錄結構

2.1、沙盒目錄初始化有三個目錄文件夾,分別是:Documents, Library 和 tmp。

2.2、各個目錄的結構和說明:

Documents:iTunes備份和恢復的時候會包括此目錄

Library:存儲程序的默認設置或其它狀態信息;

Library/Caches:存放緩存文件,iTunes不會備份此目錄,此目錄下文件不會在應用退出刪除

tmp:提供一個即時創建臨時文件的地方。

iTunes在與iPhone同步時,備份所有的Documents和Library文件。

特別說明:在iPhone在重啟的時候,會刪除/丟棄所有在tmp文件夾里面的文件。

3.沙盒各個目錄訪問:

3.1、獲取程序的Home目錄

NSString *homeDirectory = NSHomeDirectory();

NSLog(@"path:%@", homeDirectory);

3.2、獲取document目錄

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSString *documentpath = [paths objectAtIndex:0];

NSLog(@"path:%@", documentpath);

3.3、獲取Cache目錄

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);

NSString *Cache = [paths objectAtIndex:0];

NSLog(@"%@", Cache);

3.4、獲取Library目錄

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);

NSString *Librarypath = [paths objectAtIndex:0];

NSLog(@"%@", Librarypath);

3.5、獲取Tmp目錄

NSString *tmpDir = NSTemporaryDirectory();

NSLog(@"%@", tmpDir);

3.6、寫入文件

NSArray *array = [[NSArray alloc] initWithObjects:@"寫入內容",@"content",nil];

[array writeToFile:filePath atomically:YES];

4.文件管理

4.1、創建文件管理器

NSFileManager * fileManager = [NSFileManager defaultManager];

NSString * documents = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)lastObject];

NSString * filePath = [documents stringByAppendingPathComponent:@"test"];

// 判斷一個文件是否存在,傳入全路徑

if ([fileManager fileExistsAtPath:filePath]) {

NSLog(@"it is exit");

}

4.2、獲取目錄列里所有文件名

4.2.1、有兩種方法可以獲取:subpathsOfDirectoryAtPath 和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);
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1、 沙盒概念基本介紹 iOS 應用程序只能在該 app 的文件系統中讀取。這個默認的 app 文件系統就是我們說...
    Laughingg閱讀 2,775評論 2 10
  • 前言:突然想學習一下,沙盒,看了那么多博客,我四處的搜集一下總結一下,為了以后方便學習,留存一篇整合的文章。 一、...
    麥穗0615閱讀 12,384評論 5 28
  • 1.iOS 沙盒機制簡介 沙盒也叫沙箱,英文standbox,其原理是通過重定向技術,把程序生成和修改的文件定向到...
    軟件iOS開發閱讀 266評論 0 0
  • 1.iOS 沙盒機制簡介 沙盒也叫沙箱,英文standbox,其原理是通過重定向技術,把程序生成和修改的文件定向到...
    剎那年華逝閱讀 5,314評論 5 1
  • 頭腦一熱領了個寫作任務,作文零起步呀,看的人一定很難想象這是一中年人寫的蹩腳文字。在摟娃睡覺的時候想想過去的...
    lvy加惠閱讀 248評論 0 0