精华内容
下载资源
问答
  • 在java语言中,实现“将一个文件夹中的所有文件子文件夹复制到另一个文件夹内”看上去并不困难,但总会因为一些细节问题而不停地去排错。

    1.引子

    在java语言中,实现“将一个文件夹中的所有文件及子文件夹复制到另一个文件夹内”看上去并不困难,但总会因为一些细节问题而不停地去排错。我本人也修改了三四次才实现这个功能。其中的关键点主要是使用递归调用、不要忘记创建磁盘中原本不存在的空文件和空目录

    2.代码

       public static boolean copyAllToAnotherDirectory(File srcDir, File desDir) 
        {
            if (srcDir == null | desDir == null)
                throw new NullPointerException("The parameter srcDir or desDisr is null.");
            // 源文件不存在时抛出非法参数异常
            if (!srcDir.exists())
                throw new IllegalArgumentException("复制源不存在!");
            // 系统中不存在目标目录,则创建一个desDir这样的目录。
            if (!desDir.exists() || !desDir.isDirectory())
                desDir.mkdirs();
            FileInputStream fis = null;
            FileOutputStream fos = null;
            File desChildFile = null; // 当前级别的目标子文件或子目录对象
            byte[] bs = new byte[1024 * 1024]; // 保存读取或写入流数据的字节数组
            int len=0;  //读到的字节长度
            try
            {
                // 源目录是一个普通文件时
                if (srcDir.isFile())
                {
                    fis = new FileInputStream(srcDir); // 初始化源文件输入流
                    desChildFile = new File(desDir, srcDir.getName()); // 初始化一个目标文件对象
                    // 在磁盘上创建一个desChildFile对象对应的目标文件
                    if (!desChildFile.exists())
                        desChildFile.createNewFile();
                    fos = new FileOutputStream(desChildFile); // 初始化目标文件的输出流
                    while ((len=fis.read(bs) )!= -1) // 读数据
                    {
                        fos.write(bs,0,len); // 写数据
                    }
                    
                 // 源目录是一个正常目录时
                }
                else if (srcDir.isDirectory())
                {
                    
                    // 罗列出当前源目录下所有的下一级文件、下一级目录,保存在File数据中
                    File[] childFiles = srcDir.listFiles();
                    
                    /*
                     * 遍历当前级源目录的子文件、子目录,
                     * 并分别针对其下的文件、目录 进行不同的处理,进入不同分支。
                     */
                    for (File childFile : childFiles)
                    {
                        
                        // 下级元素是一个普通文件时
                        if (childFile.isFile())
                        {
                            fis = new FileInputStream(childFile); // 初始化源文件输入流
                            // 初始化一个在当前级目标目录下,和当前级源目录子文件同名的文件对象
                            desChildFile = new File(desDir, childFile.getName());
                            // 在磁盘上创建一个desChildFile对象对应的文件
                            if (!desChildFile.exists())
                                desChildFile.createNewFile();
                            fos = new FileOutputStream(desChildFile); // 初始化目标文件输出流
                            while ((len=fis.read(bs) )!= -1) // 读入数据
                            {
                                fos.write(bs,0,len); // 向desChildFile对象对应的文件上写入数据
                            }
                            closeStream(fis, fos);  //关闭输入输出流
                            desChildFile=null;  //desChildFile赋空,方便垃圾回收器收回内存
                        }
                         // 下级元素是一个目录时
                        else if (childFile.isDirectory())
                        {
                            // 初始化一个在当前级目标目录下,和当前级源目录子目录同名的目录对象
                            desChildFile = new File(desDir.getAbsoluteFile() + "/" + childFile.getName());
                            // 在磁盘上创建一个desChildFile对象对应的目录
                            if (!desChildFile.exists())
                                desChildFile.mkdirs();
                            copyAllToAnotherDirectory(childFile, desChildFile); // 递归调用方法本身
                        }
                    }
                }
            }
            catch (FileNotFoundException e)
            {
                e.printStackTrace();
                return false;
            }
            catch (IOException e)
            {
                e.printStackTrace();
                return false;
            }
            finally
            {
                closeStream(fis,fos);
               
            }
            return true;
        }
    
    展开全文
  • 批处理、批量复制文件:复制文件夹及子文件下所有特定文件,并且复制存在特定文件的子文件夹 cls @echo ******************************************************************************************* @echo 复制...

    批处理、批量复制文件:复制文件夹及子文件下所有特定文件,并且复制存在特定文件的子文件夹

    cls
    @echo *******************************************************************************************
    
    @echo 复制文件夹及子文件下所有特定文件,并且复制存在特定文件的子文件夹。
    @echo *******************************************************************************************
    @echo                                          *
    @echo *******************************************************************************************
    ::目的文件夹名为mubiao
    @MD D:\目标文件夹
    @set mubiao=D:\目标文件夹
    ::原文件夹yuanlujing
    @set yuanlujing=E:\01.刘玉净
    @echo  从这里 %mubiao% 
    @echo 拷贝到: %yuanlujing%
    @echo *******************************************************************************************
    @pause
    
    cls
    @echo on
    @echo 文件内容较多,请稍等片刻会自动开始
    ::复制特定文件。
    cd %yuanlujing%
    for /f "delims=" %%a in ('dir/b/s/a-d *.jpg *.jpeg') do (
       set "var=%%a"
       setlocal enabledelayedexpansion
       set var=!var:*%cd%=!
       ::如果不复制子文件夹,注释后删除掉下行
       md "%mubiao%!var!" 
       copy /y "%%a" "%mubiao%!var!"
       endlocal
    )
    pause
    
    展开全文
  • 复制当前目录所有文件夹及其子文件夹下的*.jpg文件到store文件夹下

    1、复制当前目录所有文件夹及其子文件夹下的.jpg文件到store文件夹下
    2、不论多少层目录结构都可以
    3、更改文件后缀名.jpg为其它后缀名的文件同样适用

    #!/bin/bash
    # yikai from TUST,2020/11/02
    # 功能:复制当前目录中所有文件夹及其子文件夹下的*.jpg文件到store文件夹下
    # 不论多少层目录结构都可以
    # 更改文件的后缀名.jpg为其它后缀名的文件同样适用
    
    Execution()	#定义函数
    {
    	if ls *.jpg >/dev/null 2>&1;then	#“>/dev/null 2>&1”这两个参数的目的是把没有*.jpg文件的错误打印隐藏掉,当然不加这两参数也不影响执行结果
    		cp *.jpg $StoreAbsPath -rf	#强制复制当前目录中的*.jpg文件到store中
    	fi 
    	dir=$(ls -l ./ |awk '/^d/ {print $NF}')	#获取当前目录下的所有文件夹的名称
    	for i in $dir	#遍历目录
    	do
    		[ $i = $DirStoryName ] && continue	#当i为当前存放所有图片的store文件夹时跳过本次循环
    		echo $i
    		cd $i
    			Execution	#函数递归调用,**遍历下层目录中的.jpg文件**
    		cd ..
    	done
    }
    
    DirStoryName=store			#store为图片将要存储的文件夹名,唯一可以更改的地方
    [ -d $DirStoryName ] || mkdir $DirStoryName	#存储目录不存在则建立
    StoreAbsPath=$(pwd)/$DirStoryName	#获取存储目录的绝对路径
    Execution	#函数调用执行
    echo "Congratulation!!!!!!!!!"
    
    
    展开全文
  • 自己是C#开发的一个新手,突然boss急着要写一个C++实现...C++应该和C#思路一样,先找出源文件夹下的文件,遍历复制,然后找出源文件夹下的所有文件夹递归实现复制; 会的大侠们提供下C++的源代码吧,十分感谢啦
  • 1、复制文件到文件夹 cp /home/downloads/xampp-linux-x64-7.3.6-0-installer.run /opt/

    参数

    a 该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录,其作用等于dpR选项的组合。

    • d 拷贝时保留链接。
    • f 删除已经存在的目标文件而不提示。
    • i 和f选项相反,在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式拷贝。
    • p 此时cp除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中。
    • r 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名。
    • l 不作拷贝,只是链接文件。

    1、复制文件到文件夹

    cp /home/downloads/xampp-linux-x64-7.3.6-0-installer.run /opt/
    
    

    2、复制文件夹到文件夹

    cp  -r /home/downloads/phpcms_v9_UTF8/install_package/ /opt/lampp/htdocs/
    
    展开全文
  • 我有一个 名叫 baiyin的文件夹 里面有一些按...现在 我想把图片按照子文件夹的日期名称重命名后 移另一个文件夹allbaiyin中 并删除空文件夹  如果不删除 去掉Rd /q "%%i" 如果不移动 只是复制 则把 Move 改为Copy
  • Python 遍历子文件所有子文件夹

    千次阅读 2017-10-10 12:02:12
    这个“自动发版本”有点虚, 只是简单地把debug 目录下的配置文件复制到指定目录,把Release下的生成文件复制到同一指定,过滤掉不需要的文件夹(.svn),然后再往这个指定目录添加几个特定的文件。 这个是我的第一个...
  • 经常下载不同的数据集,发现很多数据集经常是文件夹下有很多子文件夹代表着类别,如1,2,3……,子文件夹下就放着该类的特征文件。因为系统读取文件夹时并不是严格意义上的升序,而是1,10,100……20,21……的形式。要...
  • 批处理查找并复制文件到指定文件夹

    万次阅读 热门讨论 2017-05-07 00:07:06
    如何通过批处理,在一个目录及其目录中查找指定列表中的所有文件,并把这些文件复制到指定的文件夹中呢?下面这个批处理可堪一用:
  • 把指定目录下,以及目录下的所有文件, 统一复制到一个目录下。 ''' import os,shutil sourceDir="D:\\te" targetDir="D:\\4" for root, dirs, files in os.walk(sourceDir): for file in files: print os.path....
  • situtation:下载了一个压缩包,解压后一个大文件夹下有许多子文件夹,每个子文件夹中有一个.avi格式文件。 task:将所有文件中.avi格式文件剪切大文件夹下。 action:上网百度了许多,综合写了一个bat文件...
  • linux复制文件到指定的文件夹

    千次阅读 2018-08-08 16:13:07
    copy命令 该命令的功能是将给出的文件或目录拷贝另一文件或目录中,同MSDOS下的copy命令一样,功能十分强大。... 说明:该命令把指定的源文件复制到目标文件或把多个源文件复制到目标目录中。  该...
  • set /p p1=请输入原始文件夹(支持拖放): set /p p2=请输入目标文件夹(支持拖放): if %p1:~0,1%%p1:~-1%=="" SET p1=%p1:~1,-1% if %p2:~0,1%%p2:~-1%=="" SET p2=%p2:~1,-1% for /r "%p1%" %%i in (*) ...
  • 1. 新建一个txt文档 ...D:\All说明把所有文件复制到D盘的All文件夹下,需要在D盘创建一个All文件夹; 3. 保存为bat文件 打开txt文档 - 另存为 - xxx.bat 4. 把xxx.bat文件复制到需要被拷贝的文...
  • linux复制/剪切文件到另一个文件夹

    万次阅读 2018-10-31 11:27:50
    复制/拷贝: cp 文件名 路径 cphello.csv ./python/ml:把当前目录的hello.csv拷贝当前目的python文件夹里的ml文件夹里 cp 源文件名 新文件名 cp hello.txt world.txt:复制并改名,...复制一个目录下的所有文件...
  • 代码: xcopy D:\0test\forlinux\4.15备份的文件大小比较大的项目\swq.seclab\src\main\resources\static\cvesummary C:\cve\sum_html /s /f /h...XCOPY是COPY的扩展,可以把指定的目录连文件和目录结构一并拷贝,...
  • 找出文件夹(及其子文件夹)中的文件复制到目标文件夹中 1.问题引出 下载了整个2018年和2019年上半年的经济学人,不过是根据发刊日期建立了多个文件夹,我想复制出里面所有的*.epub格式的电子书,不可能一个一个的...
  • 使用递归算法遍历指定文件夹,并将其中的文件目录复制到另一文件夹下,代码如下: #include <stdlib.h> #include <direct.h> #include <string.h> #include <io.h> #include <stdio....
  • 我们会用到DOS里面的bat文件批处理里命令: @echo off的意思是在批处理运行命令的时候不会一条一条的显示执行的命令,与之相匹配的还有@echo on。 @echo off 与@echo on前者为关闭回显,后者为打开回显 当不想...
  • 补充cp该命令的各选项含义如下 - a 该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录,其作用... - r 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有目录和文件。此时目标文件
  • C# 把一个文件夹所有文件复制到另一个文件夹下 public static void CopyDirectory(string srcPath, string destPath){  try{  DirectoryInfo dir = new DirectoryInfo(srcPath);  FileSystemInfo[] fileinfo ...
  • 把指定目录下,以及目录下的所有文件, 统一复制到一个目录下。 ‘’’ import os,shutil sourceDir="/home/llp/caffe/d/train/apple" targetDir="/home/llp/caffe/d/train" for root, dirs, files in os.walk...
  • 在Java移动文件夹及其所有子文件与子文件夹可以有如下的一段简单的方法来说明: public static void moveFolder(String oldPath, String newPath) { //先复制文件 copyFolder(oldPath, newPath); //则删除源文件...
  • Linux怎么复制文件到其他文件夹

    千次阅读 2020-02-02 17:18:13
    本文主要讲解linux怎么复制文件到其他文件夹。 在Linux和Unix系统上工作时,复制文件和目录是您每天要执行的最常见任务之一。 cp是一个命令行实用程序,用于复制Unix和Linux系统上的文件和目录。在本文中,我们将...
  • 话不多说,今天给大家分享两个函数,分别用来实现将某文件夹所有文件或整个文件夹结构复制至指定文件夹 1、将某文件夹整体复制至指定文件夹 因为相对比较简单,只要大家对Python的OS熟悉,且知道递归函数的原理...
  • 1.先判断要复制文件文件夹还是文件,如果是文件,就进行复制,如果是文件夹,就进行下一层的循环,运用递归的特性,将所有文件进行复制。 2.存在问题,相对来说,使用字符流来进行复制有缺陷,在复制的过程中...
  • ex: echo dir1 dir2 dir3 | xargs -n 1 cp -v /root/0111jzfp2/* 将/root/0111jzfp2/下的所有文件复制到 dir1 dir2 dir3 三个文件夹
  • 方案一: 可以使用child_process模块调用操作系统的命令完成,比如linux下的mv mkdir等命令 方案二: 纯js方法 需要两个引用2个库 ... 将srcPath路径的文件复制到tarPath var copyFile = f...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 143,162
精华内容 57,264
关键字:

复制文件到所有子文件夹