怎样用Java复制文件到指定目录? 在线等,急!!!!

不是一个文件。该文件夹下有四个文件。要求是把他们都复制过去。该文件都是.dll的文件。不能涉及到重新编码,否则可能会引起文件错误。

借助工具包commons-io.jar
import java.io.File;
import java.io.IOException;

import org.apache.commons.io.FileUtils;

public class Admin {

public static void main(String[] args) {
File from = new File("d:/a");
File to = new File("d:/b");

try {
FileUtils.copyDirectory(from, to);
} catch (IOException e) {
e.printStackTrace();
}
}
}追问

这样就可以直接把整个目录里的文件都复制过去了吗?

追答

是啊,org.apache.commons.io.FileUtils里面提供好多工具方法,赋值文件夹的,文件的,你可以自己试试啊

追问

好吧 好使了。不过还有个问题,怎么做运行批处理文件啊?

追答

内容就是一组cmd命令,.具体语法你可以网上查查.应该是很多的,

将下面内容保存为一个bat文件
d:
xcopy a b
再双击就可以啦

追问

麻烦再问一个问题,就是如果写一段代码让其实现启动令一个.bat文件。

追答

Runtime.getRuntime().exec("cmd.exe /c start **.bat");

注意路径,

追问

("cmd.exe /c start **.bat");
/C 需要写的是.bat所在路径是么?

追答

这个你试下吧,
要么*.bat你写绝对路径

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-08
java的File类对文件进行操作不涉及编码问题,只是流对象的处理而已
首先用File类定位到该文件夹,遍历dll文件为一个数组存储起来
然后循环遍历这四个文件 使用outputstream(可以加缓冲)写入你的目标文件夹

代码量不是很大 只是逻辑必须清晰

而且如果不是必须用java操作 我觉得写批处理比写java简单的多
第2个回答  2012-05-08
如果是windows系统,直接调用copy命令不更好?如果是linxu, 可以调用cp啊

import java.io.IOException;

public class FileCopy {

public static void main(String[] args) {

final String src = "c:\\src";
final String desc = "c:\\desc";

try {
String cmd = "cmd /c copy " + src + "\\* " + desc + "\\";
Runtime.getRuntime().exec(cmd).waitFor();
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}

}

}
第3个回答  2012-05-08
/**
* 拷贝一个文件到指定的文件
* @param src
* @param destDirectory
* @return
*/
public static boolean copyFileToFile(String srcfile,String destfile){

try {
java.io.FileInputStream fin = new java.io.FileInputStream(srcfile);
java.io.FileOutputStream fout = new java.io.FileOutputStream(destfile);
int x = -1;
while((x=fin.read()) != -1){
fout.write(x);
}
fin.close();
fout.flush();
fout.close();
return true;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("移动文件到目标地址失败 error:" + e.getMessage());
return false;
}

}

/// 再写个方法, 拷贝整个目录中的文件,到一个目录,里面递归调用,我上面的那个方法就行了
第4个回答  2012-05-08
这么大的代码估计没人会写的
要么就是在别的地方粘贴的

提示你使用输入输出流。自己可以实践一下。
注意内存溢出就行了追问

我写了一下,也是参考别人的。但是好像是把源文件给重新编码了。而且复制后的文件大小也不一样了。我觉得好像还是有些问题。而且我那个写的是传一个文件。但是我想要达到的效果是将指定目录下的文件都传过去。

追答

java可以遍历文件夹中的全部文件

你在复制的时候,可以遍历文件夹,然后使用循环将每一个文件都拷贝过去

使用文件流不会重新编译呀?

不知道哪里出现的错误

相似回答