import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class CopyFile {
public boolean copy(String file1,String file2) {
File in=new File(file1);
File out=new File(file2);
if(!in.exists()){
System.out.println(in.getAbsolutePath()+"源文件路径错误!!!");
return false;
}
else {
System.out.println("源文件路径"+in.getAbsolutePath());
System.out.println("目标路径"+out.getAbsolutePath());
}
if(!out.exists())
out.mkdirs();
File[] file=in.listFiles();
FileInputStream fin=null;
FileOutputStream fout=null;
for(int i=0;i<file.length;i++){
if(file[i].isFile()){
try {
fin=new FileInputStream(file[i]);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("in.name="+file[i].getName());
try {
fout=new FileOutputStream(new File(file2+"/"+file[i].getName()));
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(file2);
int c;
byte[] b=new byte[1024*5];
try {
while((c=fin.read(b))!=-1){
fout.write(b, 0, c);
System.out.println("复制文件中!");
}
<------------------------------注意
fin.close();
fout.flush();
fout.close();
<--------------------------------
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
<-------------------------------注释掉
// return true;
}
else copy(file1+"/"+file[i].getName(),file2+"/"+file[i].getName());
}
return false;
}
public static void main(String[] args) {
CopyFile copyFile = new CopyFile();
copyFile.copy("E:\\study\\opngl", "E:\\opengl");
}
}
追问如果目标文件夹和源文件都不确定该怎么写???
追答那就麻烦了你必须加一个界面用来选择文件,同时界面上有输出路径可以修改。网上搜一下吧。java无直接复制文件的方法,必须先读在写。
追问可以用jFileChooser1控件的getpath()方法获取路径吗?
追答看下面吧,自己改改。
public void FilePath()
{
JFileChooser chooser = new JFileChooser("./");
FileNameExtensionFilter filter = new FileNameExtensionFilter(
"文本文档", "txt");
chooser.setFileFilter(filter);
int returnVal = chooser.showOpenDialog(null);
// 如果是选择了文件
if(JFileChooser.APPROVE_OPTION == returnVal){
txt1.setText(chooser.getSelectedFile().getAbsolutePath()); // 得到路径(文件所在路径)
filepath = txt1.getText();
lujingtest = chooser.getSelectedFile().getParent();//文件输出路径(父路径)
txt2.setText(lujingtest);
lujingtest = lujingtest + "\\";
}
}
参考资料:http://zhidao.baidu.com/question/376443812.html