java 用于xcopy复制_java调用copy复制子文件夹及文件到指定目录(非xcopy)
因?yàn)樽魉詿┮驗(yàn)闊┧钥鞓?..(為什么不先查一下有沒有現(xiàn)成的命令,后悔啊!!)
不知道有xcopy這個(gè)命令就自己想寫個(gè)復(fù)制子目錄和文件的功能。。。以下故事誕生了
是這樣的,昨天在學(xué)校弄的半成品,半成品弄完晚上就跟朋友打cf了。。。他是個(gè)會(huì)帶隊(duì)團(tuán)滅的牛逼人物!!
然后隔天早上去學(xué)校就拿半成品測試了一下,發(fā)現(xiàn)直接用copy只能復(fù)制文件啊,不能直接復(fù)制子目錄里的文件(目錄指的是文件夾,子目錄就是文件夾里面還有文件夾當(dāng)然也有可能是文件)。。。。。那怎么搞???糾結(jié)了一下,就開始把半成品稍微改了一下,似乎沒什么卵用。。
然后就在那聽歌,在想,在發(fā)呆。。(厲害了我的哥),那位團(tuán)滅的牛逼人物還時(shí)不時(shí)來跟我說話,就這樣一上午過去了。。。
然后就去吃飯了,反正一早上就想了一個(gè)大概的思路。
首先要知道:目錄里有n個(gè)文件,n個(gè)目錄;n個(gè)目錄里又有n個(gè)文件及n個(gè)目錄以此類推沒完沒了的(沒完沒了是假的夸張一點(diǎn)而已)
我是這樣想的:
1.判斷如果是文件直接復(fù)制到目標(biāo)目錄,如果是目錄就保存到集合,保存的同時(shí)在目標(biāo)目錄先創(chuàng)建好要復(fù)制的目錄
if(是目錄){
在目標(biāo)文件夾創(chuàng)建要復(fù)制的文件夾
路徑保存到集合
}esel{
執(zhí)行copy命令進(jìn)行賦值
}
2.剛剛也說了目錄里有可能有n個(gè)文件和n個(gè)子目錄很多種可能(自己想想)
那么我只要再加個(gè)循環(huán)遍歷這個(gè)集合里的目錄,再進(jìn)行一次判斷,如果是文件還是跟第一次一樣直接復(fù)制到目標(biāo)目錄
如果是目錄繼續(xù)保存到集合
大概這樣寫:
if(是目錄){
在目標(biāo)文件夾創(chuàng)建要復(fù)制的文件夾
路徑保存到集合
for(int i=0...){
if(是目錄){
在目標(biāo)文件夾創(chuàng)建要復(fù)制的文件夾
保存到集合
}else{
直接復(fù)制過去
}
}
}else{
執(zhí)行copy命令進(jìn)行賦值
}
大概思路就是這樣子。
貼上代碼:
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
這樣就可以連帶子目錄和文件一起復(fù)制了,測試過沒毛病的。
其實(shí)早上也寫的差不多,但是寫的有點(diǎn)亂,中午吃完飯回來在那改,改到上課還是沒改完。。
課上完還是在那改。。。改得超級煩,因?yàn)樗悸范级搪妨?#xff0c;都不知道自己在改什么代碼看起來實(shí)在有點(diǎn)亂(佩服自己寫的代碼)
總結(jié)
以上是生活随笔為你收集整理的java 用于xcopy复制_java调用copy复制子文件夹及文件到指定目录(非xcopy)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java中创建目录_如何在Java中创建
- 下一篇: android 配置java_home_