一跺涤、沙盒:每一個應(yīng)用程序都有一個沙盒匈睁,只能在自己的沙盒中進行文件訪問,iOS8以后開放了部分文件
1桶错、沙盒目錄結(jié)構(gòu):
NSSearchPathForDirectoriesInDomains(獲取)介紹:http://blog.csdn.net/xingxing513234072/article/details/24184917
? ? ? documents(用于存儲用戶數(shù)據(jù)航唆,iTunes備份和恢復(fù)的時候會包括此目錄,所以院刁,蘋果建議將程序中建立的或在程序中瀏覽到的文件數(shù)據(jù)保存在該目錄下糯钙。)(數(shù)據(jù)持久化保存)
//獲取document的路徑:
? ? ? ?let documents = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)
print(documents[0])
print("11"+NSHomeDirectory())
? ? ? library(包含兩個子目錄:Caches 和 Preferences。Caches用來存放用戶需要換成的文件退腥。Preferences是APP的偏好設(shè)置任岸,可以通過NSUserDefaults來讀取和設(shè)置。)(緩存文件狡刘,應(yī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(存儲臨時文件享潜,應(yī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的沙盒實在用戶目錄下的資源庫里面米碰,但是資源庫是隱藏文件夾。所以查看沙盒之前购城,現(xiàn)將隱藏文件夾顯示出來。
顯示隱藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool true
隱藏隱藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool false
注意:大文件不能在iTunes同步的文件夾中(上線被拒絕)
二虐译、簡單讀寫操作:http://www.reibang.com/p/0471b2d0fe2c
String瘪板、Data、Array漆诽、Directory
FileManager :文件管理類(單例)
//單例(創(chuàng)建對象文件是一樣的)
//獲取當前應(yīng)用程序 UIApplication.shared.keyWindow(獲取主平面)? ? UserDefaults.standard? 單例在程序運行期間不會被釋放
(encoding編碼格式:encoding:.utf8)
注意:單例在程序運行期間不會被釋放侮攀,一般用于資源共享
//1、創(chuàng)建文件夾
//2厢拭、移動文件夾/重命名(判斷是湊存在文件夾在移動兰英,先執(zhí)行4)
//3、刪除
//4供鸠、是否存在
FileHandle(文件句柄)
Write...文件追加
Read...讀取某一部分
3畦贸、復(fù)雜對象寫入:http://www.reibang.com/p/0471b2d0fe2c
//1、遵守NSCoding協(xié)議,實現(xiàn)兩個方法()
//2薄坏、現(xiàn)創(chuàng)建對象
//3趋厉、創(chuàng)建一個NSMutableData
//4、根據(jù)NSMutableData創(chuàng)建Acr對象(歸檔工具)
//5胶坠、Acr對象encoding方法
//6君账、寫入data對象