swift文件操作

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