java 用于xcopy复制_java调用copy复制子文件夹及文件到指定目录(非xcopy)

因为作所以烦因为烦所以快乐...(为什么不先查一下有没有现成的命令,后悔啊!!)

不知道有xcopy这个命令就自己想写个复制子目录和文件的功能。。。以下故事诞生了

是这样的,昨天在学校弄的半成品,半成品弄完晚上就跟朋友打cf了。。。他是个会带队团灭的牛逼人物!!

然后隔天早上去学校就拿半成品测试了一下,发现直接用copy只能复制文件啊,不能直接复制子目录里的文件(目录指的是文件夹,子目录就是文件夹里面还有文件夹当然也有可能是文件)。。。。。那怎么搞???纠结了一下,就开始把半成品稍微改了一下,似乎没什么卵用。。

然后就在那听歌,在想,在发呆。。(厉害了我的哥),那位团灭的牛逼人物还时不时来跟我说话,就这样一上午过去了。。。

然后就去吃饭了,反正一早上就想了一个大概的思路。

首先要知道:目录里有n个文件,n个目录;n个目录里又有n个文件及n个目录以此类推没完没了的(没完没了是假的夸张一点而已)

我是这样想的:

1.判断如果是文件直接复制到目标目录,如果是目录就保存到集合,保存的同时在目标目录先创建好要复制的目录

if(是目录){

在目标文件夹创建要复制的文件夹

路径保存到集合

}esel{

执行copy命令进行赋值

}

2.刚刚也说了目录里有可能有n个文件和n个子目录很多种可能(自己想想)

那么我只要再加个循环遍历这个集合里的目录,再进行一次判断,如果是文件还是跟第一次一样直接复制到目标目录

如果是目录继续保存到集合

大概这样写:

if(是目录){

在目标文件夹创建要复制的文件夹

路径保存到集合

for(int i=0...){

if(是目录){

在目标文件夹创建要复制的文件夹

保存到集合

}else{

直接复制过去

}

}

}else{

执行copy命令进行赋值

}

大概思路就是这样子。

贴上代码:

1 packagecom.d9.util;2

3 importjava.io.BufferedReader;4 importjava.io.File;5 importjava.io.IOException;6 importjava.io.InputStreamReader;7 importjava.util.ArrayList;8 importjava.util.List;9

10 public classdosCopyTest {11

12 public static void main(String[] args) throwsIOException {13 String path="f:\\test1";14 String targetPath="f:\\copytest";15 File file1=newFile(path);16 File file2=newFile(targetPath);17 file2.mkdirs();18 String strname []=file1.list();19 Runtime run=Runtime.getRuntime();20 Process p=null;21 List lpath=new ArrayList();22 for(String fn:strname) {23 file2=new File(path+"\\"+fn);24 if(file2.isDirectory()) {25 new File(targetPath+"\\"+fn).mkdirs();26 lpath.add("\\"+fn+"\\");27 for(int i=0;i

这样就可以连带子目录和文件一起复制了,测试过没毛病的。

其实早上也写的差不多,但是写的有点乱,中午吃完饭回来在那改,改到上课还是没改完。。

课上完还是在那改。。。改得超级烦,因为思路都短路了,都不知道自己在改什么代码看起来实在有点乱(佩服自己写的代码)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值