1、獲取文件路徑
//1. Home目錄, 即沙盒目錄
var path = NSHomeDirectory()
print("Home path: \(path)")
//2. Documents目錄 .UserDomainMask -->搜索范圍限制在該應(yīng)用程序的沙盒內(nèi) true -->是否顯示完整路徑 first -->結(jié)果為數(shù)組,這里取第一個內(nèi)容
path = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true).first!
print("Documents: \(path)")
//3. Library目錄
path = NSSearchPathForDirectoriesInDomains(.LibraryDirectory, .UserDomainMask, true).first!
print("Library: \(path)")
//4. Caches目錄
path = NSSearchPathForDirectoriesInDomains(.CachesDirectory, .UserDomainMask, true).first!
print("Caches: \(path)")
//5. tmp目錄
path = NSTemporaryDirectory()
print("Tmp: \(path)")
- 目錄文件管理
//檢測目錄是否存在
path = "\(path)/Data"
let fileManager = NSFileManager.defaultManager()
let result = fileManager.fileExistsAtPath(path)
print(result)
//創(chuàng)建目錄
//withIntermediateDirectories 如果新文件夾路徑有多級則設(shè)為true
let fileManager = NSFileManager.defaultManager()
do {
try fileManager.createDirectoryAtPath(path, withIntermediateDirectories: false, attributes: nil)
} catch {
print("create directory failed")
}
//刪除目錄
let fileManager = NSFileManager.defaultManager()
do {
try fileManager.removeItemAtPath(path)
} catch {
print("delete directory failed")
}
//創(chuàng)建文件
fileManager.createFileAtPath(path, contents: nil, attributes: nil)
- 用戶首選項(與Android的shared preferences類似)
//獲取對象實例
let userDefaults = NSUserDefaults.standardUserDefaults()
userDefaults.setObject("CrazyMse", forKey: "NAME")
userDefaults.setObject("Joker", forKey: "NAME1")
userDefaults.synchronize() //同步數(shù)據(jù)到本地
//獲取本地內(nèi)容
let name = userDefaults.objectForKey("NAME")
let name1 = userDefaults.objectForKey("NAME1")
print("\(name!)------\(name1!)")
- 屬性列表
lazy var documentsPath: String = {
let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
return paths.first!
}()
//數(shù)組操作
//構(gòu)造路徑
let namesPaths = "\(documentsPath)/names.plist"
print(namesPaths)
//名字的數(shù)組 注意:最好用NSArray,否則會出問題
let names: NSArray = ["aaa", "bbb", "ccc", "CrazyMouse"]
names.writeToFile(namesPaths, atomically: true)//atomically 為true時,寫入臨時文件,待寫完后無錯誤,才寫入到文件中
//讀取數(shù)據(jù)
let entries = NSArray(contentsOfFile: namesPaths)
print(entries!)
//字典操作
//構(gòu)造路徑
let studentsPath = "\(documentsPath)/students.plist"
//學(xué)生字典 注意:最好用NSDictionary,否則會出問題
let students: NSDictionary = ["sno": "1101", "name": "CrazyMouse", "score": 100]
students.writeToFile(studentsPath, atomically: true)
//讀取數(shù)據(jù)
let data = NSDictionary(contentsOfFile: studentsPath)
print(data!.objectForKey("name")!)