我们知道,在沙盒内,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?#>)

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

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

Swift 拷贝文件夹,实现文件夹内容整体复制的更多相关文章

  1. Java IO实现文件(及文件夹)的复制 原创代码【精】

    单个文件复制 FileInputStream input=new FileInputStream("C://360//fay.jpg"); FileOutputStream out ...

  2. Path,Files巩固,题目:从键盘接收两个文件夹路径,把其中一个文件夹中(包含内容)拷贝到另一个文件夹中

    这个题目用传统的File,InputStream可以做,但是如果用Files,Path类做,虽然思路上会困难一些,但是代码简洁了很多,以下是代码: import java.io.IOException ...

  3. C# 选择文件、选择文件夹、打开文件(或者文件夹) 路径中获取文件全路径、目录、扩展名、文件名称 追加、拷贝、删除、移动文件、创建目录 修改文件名、文件夹名!!

    https://www.cnblogs.com/zhlziliaoku/p/5241097.html 1.选择文件用OpenDialog OpenFileDialog dialog = new Ope ...

  4. IO文件夹拷贝(文件内含有文件和文件夹)

    /** * 文件夹拷贝(文件内含有文件和文件夹) * * @param src * @param des */ private static void copy(String src, String ...

  5. C# 文件操作 全收录 追加、拷贝、删除、移动文件、创建目录、递归删除文件夹及文件....

    本文收集了目前最为常用的C#经典操作文件的方法,具体内容如下:C#追加.拷贝.删除.移动文件.创建目录.递归删除文件夹及文件.指定文件夹下 面的所有内容copy到目标文件夹下面.指定文件夹下面的所有内 ...

  6. C#追加、拷贝、删除、移动文件、创建目录、递归删除文件夹及文件

    C#追加文件 StreamWriter sw = File.AppendText(Server.MapPath(".")+"\\myText.txt"); sw ...

  7. 【转载】C#指定文件夹下面的所有内容复制到目标文件夹下面

    在涉及到文件夹操作的过程中,有时候需要将文件夹下的所有内容复制拷贝到另一个文件夹,在C#的开发中有时候会遇到这个功能需求将指定文件夹下所有的内容复制到另一个文件夹,这个过程需要遍历所有的文件和目录.此 ...

  8. python 拷贝文件夹下所有的文件到指定文件夹(不包括目录)

    1.随便简单些写了一下.直接粘结代码,只是简单的实现一下,还很多需要完善和扩展的地方,比如忽略掉后缀文件,删除文件 如果排除的某些的话可以用: sourceF.find('.后缀')>0 2.注 ...

  9. VBA读取文件夹下所有文件夹及文件内容,并以树形结构展示

    Const TR_LEVEL_MARK = "+"Const TR_COL_INDEX = "A"Const TR_COL_LEVEL = "E&qu ...

随机推荐

  1. string通过逗号分割不用split方法

    package com.simon; import java.util.ArrayList; import java.util.Iterator; import java.util.List; pub ...

  2. Java集合及LIst接口

    一.集合的概念 1.概述: 在学习集合前,先回忆一下数组的一个特征---数组有固定的长度,定义一个数组: int[] array = new int[]; 而针对数据长度可变的情况,产生了集合, ja ...

  3. NLR:利用非线性回归,梯度下降法求出学习参数θ,进而求得Cost函数最优值——Jason niu

    import numpy as np import random def genData(numPoints,bias,variance): x = np.zeros(shape=(numPoints ...

  4. python之迭代器与生成器

    python之迭代器与生成器 可迭代 假如现在有一个列表,有一个int类型的12345.我们循环输出. list=[1,2,3,4,5] for i in list: print(i) for i i ...

  5. 001.Oracle安装部署-本地文件系统

    一 环境准备 安装包:linux.x64_11gR2_database_1of2.zip linux.x64_11gR2_database_2of2.zip 二 安装Oracle准备 2.1 用户名/ ...

  6. Spring监听,ApplicationListener

    import java.util.HashMap; import java.util.Map; import org.apache.commons.lang3.StringUtils; import ...

  7. ELK日志分析方案

    针对公司项目微服务化,随着项目及服务器的不断增多,决定采用ELK(Elasticsearch+Logstash+Kibana)日志分析平台进行微服务日志分析. 1.ELK整体方案 1.1 ELK架构图 ...

  8. es6那些事儿

    一.参考链接 http://www.ecma-international.org/ecma-262/6.0/index.html http://www.ecma-international.org/e ...

  9. IDEA安装使用Lombok插件

    项目中经常使用bean,entity等类,绝大部分数据类类中都需要get.set.toString.equals和hashCode方法,虽然IDEA开发环境下都有自动生成的快捷方式,但自动生成这些代码 ...

  10. Java笔记(十八)同步和协作工具类

    同步和协作工具类 一.读写锁ReentrantReadWriteLock ReadWriteLock接口的定义为: public interface ReadWriteLock { Lock read ...