一、沙盒:每一個(gè)應(yīng)用程序都有一個(gè)沙盒,只能在自己的沙盒中進(jìn)行文件訪問,iOS8以后開放了部分文件
1、沙盒目錄結(jié)構(gòu):
NSSearchPathForDirectoriesInDomains(獲取)介紹:http://blog.csdn.net/xingxing513234072/article/details/24184917
? ? ? documents(用于存儲(chǔ)用戶數(shù)據(jù),iTunes備份和恢復(fù)的時(shí)候會(huì)包括此目錄,所以,蘋果建議將程序中建立的或在程序中瀏覽到的文件數(shù)據(jù)保存在該目錄下。)(數(shù)據(jù)持久化保存)
//獲取document的路徑:
? ? ? ?let documents = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)
print(documents[0])
print("11"+NSHomeDirectory())
? ? ? library(包含兩個(gè)子目錄:Caches 和 Preferences。Caches用來存放用戶需要換成的文件。Preferences是APP的偏好設(shè)置,可以通過NSUserDefaults來讀取和設(shè)置。)(緩存文件,應(yīng)用退出不會(huì)自動(dòng)刪除)
//獲取library的路徑:
let lib = NSSearchPathForDirectoriesInDomains(.libraryDirectory, .userDomainMask, true)
print("lib = " + lib[0])
let caches = NSSearchPathForDirectoriesInDomains(.cachesDirectory, .userDomainMask, true)
print("caches = " + caches[0])
//prefer 不可以直接獲取
let prefer = lib[0] + "/Preferences"
print("prefer = " + prefer)
? ? ? tmp(存儲(chǔ)臨時(shí)文件,應(yīng)用退出會(huì)自動(dòng)刪除)
//獲取temp目錄 獲取到沙盒根目錄(NSHomeDirectory) 再拼接temp目錄
let temp = NSHomeDirectory() + "/tmp"
print("tmp = " + temp)
2、打開沙盒模擬器的方法:
? ? ? 直接在Finder->前往->前往文件夾,輸入上面的內(nèi)容即可:/Users/140xiangwenjing/Library/Developer/CoreSimulator/Devices/27D1ABAB-8FD8-4AEB-ACF5-968100682C81/data/Containers/Data/Application/5767F33A-EF32-45EB-BBB1-20F27DD1AE63/tmp
通過Finder一步步查找
? ? 模擬器上的APP的沙盒實(shí)在用戶目錄下的資源庫里面,但是資源庫是隱藏文件夾。所以查看沙盒之前,現(xiàn)將隱藏文件夾顯示出來。
顯示隱藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool true
隱藏隱藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool false
注意:大文件不能在iTunes同步的文件夾中(上線被拒絕)
二、簡(jiǎn)單讀寫操作:http://www.lxweimin.com/p/0471b2d0fe2c
String、Data、Array、Directory
FileManager :文件管理類(單例)
//單例(創(chuàng)建對(duì)象文件是一樣的)
//獲取當(dāng)前應(yīng)用程序 UIApplication.shared.keyWindow(獲取主平面)? ? UserDefaults.standard? 單例在程序運(yùn)行期間不會(huì)被釋放
(encoding編碼格式:encoding:.utf8)
注意:?jiǎn)卫诔绦蜻\(yùn)行期間不會(huì)被釋放,一般用于資源共享
//1、創(chuàng)建文件夾
//2、移動(dòng)文件夾/重命名(判斷是湊存在文件夾在移動(dòng),先執(zhí)行4)
//3、刪除
//4、是否存在
FileHandle(文件句柄)
Write...文件追加
Read...讀取某一部分
3、復(fù)雜對(duì)象寫入:http://www.lxweimin.com/p/0471b2d0fe2c
//1、遵守NSCoding協(xié)議,實(shí)現(xiàn)兩個(gè)方法()
//2、現(xiàn)創(chuàng)建對(duì)象
//3、創(chuàng)建一個(gè)NSMutableData
//4、根據(jù)NSMutableData創(chuàng)建Acr對(duì)象(歸檔工具)
//5、Acr對(duì)象encoding方法
//6、寫入data對(duì)象