需要用到swift存儲文件等操作,網上方法五花八門,搞來搞去,亂七八糟,很亂,於是,理了一下方法。
https://iuwe.cc/index.php/archives/79/
僅僅寫我用到的幾個方法,更多的方法不做討論
首先我用 just庫從服務器get到一個文件,我需要將它保存下來。
let manager = FileManager.default
let baseUrl = NSHomeDirectory() + "/Documents/Amusic/" + self.filname
let exist = manager.fileExists(atPath: baseUrl)
//將 文件地址存到 變量 exist中
if !exist{ //如果文件夾不存在,創建一個異常捕捉語句,創建文件夾
do {
try manager.createDirectory(atPath: baseUrl, withIntermediateDirectories: true, attributes: nil)
print("creat baseUrl Successful")
}
catch{
print("something wrong")
}
}
//創建 文件夾
let filePath = baseUrl + "/" + self.filname + ".zip"
let pathUrl:URL = URL.init(fileURLWithPath: filePath)
//將路徑轉換為URl形式
do{
try retfil.write(to: pathUrl) //將data直接寫到文件里面
print("write successfully path:\(filePath)")
}catch{
print("writefile error path:\(filePath)")
}
2,刪除某處文件
let manager = FileManager.default
let folder = NSHomeDirectory() + "/Documents/Amusic" //要刪除的文件夾
let files:[String]? = manager.subpaths(atPath: folder) //搜索文件夾下面所有文件
for file in files!{ //遍歷文件夾下面的所有文件並刪除
do{
try manager.removeItem(atPath: folder + "/\(file)")//刪除
print("清理成功")
}catch{
print("\(file) 刪除失敗")
}
}
3,解壓zip壓縮包,用到了zip庫
let manager = FileManager.default
let baseUrl = NSHomeDirectory() + "/Documents/Amusic/" + self.filname
let filePath = baseUrl + "/" + self.filname + ".zip"
let pathUrl:URL = URL.init(fileURLWithPath: filePath)
let unzipUrl = URL.init(fileURLWithPath: baseUrl + "/out")
do {
try Zip.unzipFile(pathUrl, destination: unzipUrl, overwrite: true, password: "passwd",progress: {
(Progress) ->() in
print("extra:\(Progress)")
})
}
catch {
print("Something went wrong")
}
