黑马程序员技术交流社区

标题: 复制多层文件夹及文件到指定目录 [打印本页]

作者: 郝永    时间: 2017-4-17 00:18
标题: 复制多层文件夹及文件到指定目录
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class FuZhiDuoCengWenJian {

        public static void main(String[] args) throws IOException {
                String s = "F:\\学习资料\\练习题";
                String s1 = "E:\\复制文件";
                File f = new File(s);
                File f1 = new File(s1);
                menth(f, f1);
        }

        public static void menth(File a, File b) throws IOException {

                File[] files = a.listFiles();
                for (File file : files) {
                        if (file.isFile()) {
                                FileInputStream fi = new FileInputStream(file);
                                String s = file.getName();
                                File f = new File(b, s);
                                FileOutputStream fo = new FileOutputStream(f);
                                byte[] arr = new byte[1024];
                                int a1;
                                while ((a1 = fi.read(arr)) != -1) {
                                        fo.write(arr, 0, a1);
                                }
                                fo.close();
                                fi.close();
                        } else if (file.isDirectory()) {
                                String s = file.getName();
                                File f = new File(b, s);
                                f.mkdirs();
                                menth(file, f);
                        }
                }
        }
}有点烧脑
作者: DreamBoyMrsLin    时间: 2017-4-17 00:36
给力 顶一个
作者: 冷丨欢    时间: 2017-4-17 01:44
一脸懵逼

作者: IceLoveInFire丶    时间: 2017-4-17 06:59
你试试多级删除。稍微有难度一些些

作者: lvshen9    时间: 2017-4-17 07:26
谢谢分享

作者: 丿UNDY    时间: 2017-4-17 08:34
看出两个问题  :
1.如果目录不存在,没有进行判断。
2.如果是 复制的是同名目录,可能出现 无线复制的问题。
另外 为了通用性,最好不要将 起始的目录写死。
作者: 烟雨清寒时    时间: 2017-4-17 09:19
这个不是递归嘛

作者: 郝永    时间: 2017-4-18 21:39
丿UNDY 发表于 2017-4-17 08:34
看出两个问题  :
1.如果目录不存在,没有进行判断。
2.如果是 复制的是同名目录,可能出现 无线复制的问题 ...

第一个问题,你是说没有那个"复制文件"吗,我试了,没有的话自动创建,第二个问题,都是复制的"练习题"下面的文件及文件夹,名字一样没改变,无线复制是什么意思?不懂,求指教
作者: 丿UNDY    时间: 2017-4-20 16:20
郝永 发表于 2017-4-18 21:39
第一个问题,你是说没有那个"复制文件"吗,我试了,没有的话自动创建,第二个问题,都是复制的"练习题"下面的 ...

我的第一个的意思是非法输入没有进行判断。。
第二个是假设你有一个 F:\src 目录 你将这个目录复制到f:\src\下试试




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2