需要用到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") }