精华内容
下载资源
问答
  • Java复制文件夹

    2016-09-07 16:56:10
    Java复制文件夹主要用到的就是IO流,先判断是否是文件,如果是文件则复制文件到当前目录,如果是文件夹则利用递归的方式去访问文件夹并复制。import

    Java复制文件夹主要用到的就是IO流,先判断是否是文件,如果是文件则复制文件到当前目录,如果是文件夹则利用递归的方式去访问文件夹并复制。

    import java.io.BufferedInputStream;
    import java.io.BufferedOutputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    public class CopyFloder {
    static String url1 = "F://DCIM";//要复制的文件夹
    static String url2 = "F://app";//目标文件夹
    
    public static void main(String[] args) {
        File file1 = new File(url2);
        file1.mkdir();
        File file2 = new File(url1);
        File [] files = file2.listFiles();
        for (int i = 0; i < files.length; i++) {
            //判断是否是文件,如果是文件就复制到当前文件夹下
            if(files[i].isFile()){
                copyFile(files[i], new File(url2+File.separator+files[i].getName()));
            }
            //判断是否是文件夹,如果是文件夹就调用复制文件夹的方法
            if(files[i].isDirectory()){
                 String sourceDir=url1+File.separator+files[i].getName();//资源文件夹名
                 String targetDir=url2+File.separator+files[i].getName();//目标文件夹名
                 copyDirectiory(sourceDir, targetDir);  
    
            }
        }
    }
    //复制文件
    public static void copyFile(File sourcefile,File targtFile){
        try {
            FileInputStream input = new FileInputStream(sourcefile);
            BufferedInputStream bi = new BufferedInputStream(input);
            FileOutputStream fs = new FileOutputStream(targtFile);
            BufferedOutputStream bo = new BufferedOutputStream(fs);
            byte [] b = new byte[1024];
            int len = 0;
            while((len=bi.read(b))!=-1){
                bo.write(b, 0, len);
            }
            input.close();
            bi.close();
            fs.close();
            bo.close();
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    /**
     * 复制文件夹,递归的方式访问文件夹
     * @param sourceDir
     * @param targetDir
     */
    public static void copyDirectiory(String sourceDir, String targetDir){
        File file1 = new File(targetDir);
        file1.mkdirs();
        File file2 = new File(sourceDir);
        File[] files = file2.listFiles();
        for (int i = 0; i < files.length; i++) {
            //判断是否是文件,如果是文件则调用复制文件的方法
            if(files[i].isFile()){
                File sourceFile = files[i];
                File targetFile = new File(new File(targetDir).getAbsolutePath()+File.separator+sourceFile.getName());
                copyFile(sourceFile,targetFile);
            }
            //判断是否是文件夹,如果是文件夹则递归
            if(files[i].isDirectory()){
                String dir1=sourceDir + File.separator + files[i].getName();    
                String dir2=targetDir + File.separator + files[i].getName();  
                copyDirectiory(dir1, dir2);  
            }
        }
    }
    }
    展开全文
  • java 复制文件夹

    2020-12-08 18:03:42
    文章目录复制单级文件夹复制多级文件夹 复制单级文件夹 import java.io.*; /* 需求: 把E:\\it这个文件夹复制到模块目录下 思路: 1:创建数据源目录File对象,路径是E:\\it 2:获取数据源目录File对象的名称...

    复制文件夹

    复制单级文件夹

    import java.io.*;
    
    /*
        需求:
            把E:\\it这个文件夹复制到模块目录下
    
        思路:
            1:创建数据源目录File对象,路径是E:\\it
            2:获取数据源目录File对象的名称(it)
            3:创建目的地目录File对象,路径名是模块名+it组成(myCharStream\\it)
            4:判断目的地目录对应的File是否存在,如果不存在,就创建
            5:获取数据源目录下所有文件的File数组
            6:遍历File数组,得到每一个File对象,该File对象,其实就是数据源文件
                数据源文件:E:\\it\\mn.jpg
            7:获取数据源文件File对象的名称(mn.jpg)
            8:创建目的地文件File对象,路径名是目的地目录+mn.jpg组成(myCharStream\\it\\mn.jpg)
            9:复制文件
                由于文件不仅仅是文本文件,还有图片,视频等文件,所以采用字节流复制文件
     */
    public class CopyFolderDemo {
        public static void main(String[] args) throws IOException {
            //创建数据源目录File对象,路径是E:\\it
            File srcFolder = new File("E:\\it");
    
            //获取数据源目录File对象的名称(it)
            String srcFolderName = srcFolder.getName();
    
            //创建目的地目录File对象,路径名是模块名+it组成(myCharStream\\it)
            File destFolder = new File("myCharStream",srcFolderName);
    
            //判断目的地目录对应的File是否存在,如果不存在,就创建
            if(!destFolder.exists()) {
                destFolder.mkdir();
            }
    
            //获取数据源目录下所有文件的File数组
            File[] listFiles = srcFolder.listFiles();
    
            //遍历File数组,得到每一个File对象,该File对象,其实就是数据源文件
            for(File srcFile : listFiles) {
                //数据源文件:E:\\it\\mn.jpg
                //获取数据源文件File对象的名称(mn.jpg)
                String srcFileName = srcFile.getName();
                //创建目的地文件File对象,路径名是目的地目录+mn.jpg组成(myCharStream\\it\\mn.jpg)
                File destFile = new File(destFolder,srcFileName);
                //复制文件
                copyFile(srcFile,destFile);
            }
        }
    
        private static void copyFile(File srcFile, File destFile) throws IOException {
            BufferedInputStream bis = new BufferedInputStream(new FileInputStream(srcFile));
            BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(destFile));
    
            byte[] bys = new byte[1024];
            int len;
            while ((len=bis.read(bys))!=-1) {
                bos.write(bys,0,len);
            }
    
            bos.close();
            bis.close();
        }
    
    
    }
    
    

    复制多级文件夹

    import java.io.*;
    
    /*
        需求:
            把“E:\\it”复制到 F盘目录下
    
        思路:
            1:创建数据源File对象,路径是E:\\it
            2:创建目的地File对象,路径是F:\\
            3:写方法实现文件夹的复制,参数为数据源File对象和目的地File对象
            4:判断数据源File是否是目录
                是:
                    A:在目的地下创建和数据源File名称一样的目录
                    B:获取数据源File下所有文件或者目录的File数组
                    C:遍历该File数组,得到每一个File对象
                    D:把该File作为数据源File对象,递归调用复制文件夹的方法
                不是:说明是文件,直接复制,用字节流
     */
    public class CopyFoldersDemo {
        public static void main(String[] args) throws IOException {
            //创建数据源File对象,路径是E:\\it
            File srcFile = new File("E:\\it");
            //创建目的地File对象,路径是F:\\
            File destFile = new File("F:\\");
    
            //写方法实现文件夹的复制,参数为数据源File对象和目的地File对象
            copyFolder(srcFile,destFile);
        }
    
        //复制文件夹
        private static void copyFolder(File srcFile, File destFile) throws IOException {
            //判断数据源File是否是目录
            if(srcFile.isDirectory()) {
                //在目的地下创建和数据源File名称一样的目录
                String srcFileName = srcFile.getName();
                File newFolder = new File(destFile,srcFileName); //F:\\it
                if(!newFolder.exists()) {
                    newFolder.mkdir();
                }
    
                //获取数据源File下所有文件或者目录的File数组
                File[] fileArray = srcFile.listFiles();
    
                //遍历该File数组,得到每一个File对象
                for(File file : fileArray) {
                    //把该File作为数据源File对象,递归调用复制文件夹的方法
                    copyFolder(file,newFolder);
                }
            } else {
                //说明是文件,直接复制,用字节流
                File newFile = new File(destFile,srcFile.getName());
                copyFile(srcFile,newFile);
            }
        }
    
        //字节缓冲流复制文件
        private static void copyFile(File srcFile, File destFile) throws IOException {
            BufferedInputStream bis = new BufferedInputStream(new FileInputStream(srcFile));
            BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(destFile));
    
            byte[] bys = new byte[1024];
            int len;
            while ((len = bis.read(bys)) != -1) {
                bos.write(bys, 0, len);
            }
    
            bos.close();
            bis.close();
        }
    
    }
    
    

    复制文件的异常处理

    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    
    /*
        复制文件加入异常处理
     */
    public class CopyFileDemo {
        public static void main(String[] args) {
    
        }
    
        //JDK9的改进方案
        private static void method4() throws IOException {
            FileReader fr = new FileReader("fr.txt");
            FileWriter fw = new FileWriter("fw.txt");
            try(fr;fw){
                char[] chs = new char[1024];
                int len;
                while ((len = fr.read()) != -1) {
                    fw.write(chs, 0, len);
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
        //JDK7的改进方案
        private static void method3() {
            try(FileReader fr = new FileReader("fr.txt");
                FileWriter fw = new FileWriter("fw.txt");){
                char[] chs = new char[1024];
                int len;
                while ((len = fr.read()) != -1) {
                    fw.write(chs, 0, len);
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
        //try...catch...finally
        private static void method2() {
            FileReader fr = null;
            FileWriter fw = null;
            try {
                fr = new FileReader("fr.txt");
                fw = new FileWriter("fw.txt");
    
                char[] chs = new char[1024];
                int len;
                while ((len = fr.read()) != -1) {
                    fw.write(chs, 0, len);
                }
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                if(fw!=null) {
                    try {
                        fw.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                if(fr!=null) {
                    try {
                        fr.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    
        //抛出处理
        private static void method1() throws IOException {
            FileReader fr = new FileReader("fr.txt");
            FileWriter fw = new FileWriter("fw.txt");
    
            char[] chs = new char[1024];
            int len;
            while ((len = fr.read()) != -1) {
                fw.write(chs, 0, len);
            }
    
            fw.close();
            fr.close();
        }
    }
    
    
    展开全文
  • java复制文件夹

    2018-08-29 11:33:40
    复制文件夹,要层层深入,因为文件夹中可能含有文件夹,复制时,要先创建这个新文件夹,所以要拼接路径.思路清楚即可 代码如下: package com.carlinfo.filetree; import java.io.BufferedInputStream; import java.io...

    本程序可以复制文件,或者文件夹

    用到io和递归的知识:

    复制文件夹,要层层深入,因为文件夹中可能含有文件夹,复制时,要先创建这个新文件夹,所以要拼接路径.思路清楚即可

    代码如下:

    package com.carlinfo.filetree;
    
    import java.io.BufferedInputStream;
    import java.io.BufferedOutputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    
    public class CopyFolder2 {
    	
    	public static void main(String[] args) {
    		/* 准备源路径 */
    		String path = "H:\\test2";
    		File sourceFile = new File(path);
    		/* 目标路径 */
    		String path2 = "h:\\test\\c";
    		File TargetFile = new File(path2);
    		copy(sourceFile, TargetFile);
                    System.out.println("复制成功!");
    	}
    
    	public static void copy(File sourceFile, File TarFile) {
    		String str = "";
    		/* 判断该文件是不是文件夹,是文件,直接复制文件 */
    		if (!sourceFile.isDirectory()) {
    			cy(sourceFile, TarFile);
    		} else {
    			str = TarFile.getPath() + "\\" + sourceFile.getName();
    			System.out.println("--创建文件夹-->" + str);
    			File fs = new File(str);
    			fs.mkdir();
    			/* 将该文件夹中的文件取出来 */
    			File[] listFiles = sourceFile.listFiles();
    			for (int i = 0; i < listFiles.length; i++) {
    				/* 对文件夹遍历,判断是文件还是文件夹 */
    				if (!listFiles[i].isDirectory()) {
    					cy(listFiles[i], fs);
    				} else {
    					/* 如果是文件夹,继续调自己,递归 */
    					copy(listFiles[i], fs);
    				}
    
    			}
    		}
    	}
    
    	/**
    	 * 复制文件
    	 * 用到io字节流
    	 * 
    	 * @param sourceFile
    	 * @param TarFile
    	 */
    	public static void cy(File sourceFile, File TarFile) {
    		/* 用于拼装路径,因为目标文件不存在 */
    		String str = "";
    		/* 准备管子 */
    		FileInputStream fis = null;
    		FileOutputStream fos = null;
    		BufferedInputStream bis = null;
    		BufferedOutputStream bos = null;
    		/* 准备容器 */
    		byte[] b = new byte[1024];
    		/* 拼装路径 */
    		str = TarFile.getPath() + "\\" + sourceFile.getName();
    		System.out.println("--创建文件--" + str);
    		File file = new File(str);
    		try {
    			file.createNewFile();
    
    			fis = new FileInputStream(sourceFile);
    			bis = new BufferedInputStream(fis);
    
    			fos = new FileOutputStream(file);
    			bos = new BufferedOutputStream(fos);
    
    			int len = 0;
    			while ((len = bis.read(b)) != -1) {
    				/* 写数据 */
    				bos.write(b, 0, len);
    			}
    			bos.flush();
    		} catch (FileNotFoundException e) {
    			e.printStackTrace();
    		} catch (IOException e) {
    			e.printStackTrace();
    		} catch (Exception e) {
    			e.printStackTrace();
    		} finally {
    			try {
    				if (bis != null) {
    					/* 记得关闭管子 */
    					bis.close();
    					bis = null;
    				}
    			} catch (IOException e) {
    				e.printStackTrace();
    			}
    			try {
    				if (bos != null) {
    					/* 关闭管子 */
    					bos.close();
    					bos = null;
    				}
    			} catch (IOException e) {
    				e.printStackTrace();
    			}
    		}
    
    	}
    }
    

     

    展开全文
  • JAVA复制文件夹

    2012-08-05 15:57:44
    文件夹复制功能,使用字节流读取功能。还有文件的创建等功能
  • Java 复制文件夹

    2010-05-02 16:02:58
    /* 复制整个文件夹内容 * * @param oldPath * String 原文件路径 如:c:/old * @param newPath * String 复制后路径 如:f:/new * @return boolean */ private static vo...

    /* 复制整个文件夹内容
    *
    * @param oldPath
    * String 原文件路径 如:c:/old
    * @param newPath
    * String 复制后路径 如:f:/new
    * @return boolean
    */
    private static void copyFolder(String oldPath, String newPath) {

    try {
    (new File(newPath)).mkdirs(); // 如果文件夹不存在 则建立新文件夹
    File a = new File(oldPath);
    String[] file = a.list();
    File temp = null;
    for (int i = 0; i < file.length; i++) {
    if (oldPath.endsWith(File.separator)) {
    temp = new File(oldPath + file[i]);
    } else {
    temp = new File(oldPath + File.separator + file[i]);
    }
    if (temp.isFile()) {
    FileInputStream input = new FileInputStream(temp);
    FileOutputStream output = new FileOutputStream(newPath + "/" + (temp.getName()).toString());
    byte[] b = new byte[1024 * 5];
    int len;
    while ((len = input.read(b)) != -1) {
    output.write(b, 0, len);
    }
    output.flush();
    output.close();
    input.close();
    }
    if (temp.isDirectory()) {// 如果是子文件夹
    copyFolder(oldPath + "/" + file[i], newPath + "/" + file[i]);
    }
    }
    } catch (Exception e) {
    System.out.println("复制整个文件夹内容操作出错");
    e.printStackTrace();
    }
    }

    展开全文
  • (4)如果为文件夹,则先copy文件夹,再依次获得该文件夹的子文件对象,用它的子文件对象依次递归调用copy方法。 代码实现: public class CopyFile { /** * @param original 要拷贝的文件或文件夹 ...
  • java复制文件夹下面的所有内容到另一个指定的目录 java复制文件夹下面的所有内容到另一个指定的目录 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这...
  • Java编写文件夹复制程序,复制文件夹里面的所有的子文件夹和文件,格式按原样输出。
  • java 复制文件夹中epub、html、txt文件 (按原来文件夹存放) 制定文件后缀,将原来文件夹中的文件复制到另一个文件夹中,并且按照内部文件夹存放
  • * 复制文件夹 */ public class demo1 { public static void main(String[] args) { //源文件 File srcfile = new File("src\\IOtest"); //复制路径 File dirfile = new File("src\\others"); copyDir...
  • 找了一些Java复制文件的代码,基本上都是输入输出流操作,而且有的错误很多,试了下在window下调试需要挺长时间,于是另辟蹊径,想想调了Runtime 这个偷懒又简单的办法,代码如下: package createCard; import ...
  • import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException;... * 复制整个文件夹内容 * @param oldPath String 原文件路径 如:c:/fqf * @param
  • 下面说下 复制文件夹的重难点(其实不是太难了,给我个装大神的机会吧,哈哈) 当然了,首先 肯定是要对IO流有一定的了解,不然看代码会很懵逼的。其次 是对逻辑要有一定的概念,就是对文件夹和文件的不同处理方式...
  • import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class MyTest2 { public static void main(String[] args) { copyDir("...
  • import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; public class Demo7 { public sta
  • 将指定文件夹的所有内容复制到指定文件夹
  • import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Local...
  • 1. 以下的代码可以用来复制文件夹中的所有文件、目录。但目的目录是源目录的子目录就不行了,会死循环调用。 import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,100
精华内容 2,040
关键字:

java复制文件夹

java 订阅