zoukankan      html  css  js  c++  java
  • 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")
            }
    

      

  • 相关阅读:
    CF 441E Valera and Number
    CodeForces 1111E. Tree
    CodeForces 1098F. Ж-function
    CodeForces 1098E. Fedya the Potter
    CodeForces 1098D. Eels
    CodeForces 1103E. Radix sum
    CodeForces 1103D. Professional layer
    CodeForces 1103C. Johnny Solving
    CodeForces 1107F. Vasya and Endless Credits
    Hackerrank: Week of Code 36
  • 原文地址:https://www.cnblogs.com/dosu/p/12632438.html
Copyright © 2011-2022 走看看