zoukankan      html  css  js  c++  java
  • Swift 拷贝文件夹,实现文件夹内容整体复制

    我们知道,在沙盒内,iOS要拷贝一个文件,可以使用

    fileManager.copyItem(atPath: fullPath, toPath: fulltoPath)

    方法简单实现,不过当我们要拷贝的是一个整体文件夹(内部包含自文件夹等等)的话,该如何实现?

    我自己测试了下,发现依然可以很便捷到实现

    比如:我要实现下图的文件夹拷贝,将cssjs文件夹整体拷贝到cssjs_temp内。

     =====》

    实现:

     /// 拷贝文件夹
        ///
        /// - Parameters:
        /// - fpath: 原始路径,绝对路径
        /// - tpath: 目标路径,绝对路径,注意:这里tpath路径必须包含目标文件夹名称,否则拷贝不了
        func copyFile(fpath:String,tpath:String) {
            do{
                //如果已存在,先删除,否则拷贝不了
                let fileManager = FileManager.default
                if fileManager.fileExists(atPath: tpath){
                    try fileManager.removeItem(atPath: tpath)
                }
                
                try fileManager.copyItem(atPath: fpath, toPath: tpath)
                
            }catch{}
            
        }

    这里有几个小注意点:

    1、目标路径,要带上文件夹名称,而不能只写父路径,比如上文到目标路径必须这样:xxx/html/cssjs_temp/cssjs  ,带上最后的cssjs

    2、如果要重命名,只需要将  xxx/html/cssjs_temp/cssjs_newName的最后文件夹名称修改即可(cssjs_newName就是你要的新名称)。

    3、如果是覆盖拷贝,就是说目标路径已存在此文件夹,我们必须先删除,否则提示make directory error(当然这里最好做一个容错处理,比如拷贝前先转移到其他路径,如果失败,再拿回来)

    结束~

    最后引申一下,最初我的需求 ,是将项目的文件,拷贝到沙盒内。

    其原理是一样到,只不过项目内文件到路径与沙盒有点区别而已。

    获取项目内文件路径:

      Bundle.main.path(forResource: <#T##String?#>, ofType: <#T##String?#>)
      Bundle.main.path(forResource: <#T##String?#>, ofType: <#T##String?#>, inDirectory: <#T##String?#>)

    一个是无实体路径,一个有实体路径。

    然后依然调用上文到拷贝方法即可。

  • 相关阅读:
    Python 爬虫js加密破解(一) 爬取今日头条as cp 算法 解密
    Python 爬虫实例(2)—— 爬取今日头条
    Python 爬虫实例(1)—— 爬取百度图片
    python 操作redis之——HyperLogLog (八)
    python 操作redis之——有序集合(sorted set) (七)
    Python操作redis系列之 列表(list) (五)
    Python操作redis系列以 哈希(Hash)命令详解(四)
    Python操作redis字符串(String)详解 (三)
    How to Install MySQL on CentOS 7
    Linux SSH远程文件/目录 传输
  • 原文地址:https://www.cnblogs.com/yajunLi/p/9584937.html
Copyright © 2011-2022 走看看