新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
字数有限制,只给你一个方法吧,大体思路就是递归调用的方式来实现
创新互联建站一直秉承“诚信做人,踏实做事”的原则,不欺瞒客户,是我们最起码的底线! 以服务为基础,以质量求生存,以技术求发展,成交一个客户多一个朋友!为您提供做网站、网站设计、成都网页设计、小程序定制开发、成都网站开发、成都网站制作、成都软件开发、app软件开发是成都本地专业的网站建设和网站设计公司,等你一起来见证!
/**
* 拷贝整个文件目录
* @param source 源目录、文件
* @param destination 目的目录、文件
*/
public static void copyFiles(File source, File destination) {
if (!source.exists()) {
//Log.warn(source.getAbsolutePath() + " 源文件或源路径不存在");
return;
}
if (destination.isFile()) {
//Log.warn(destination.getAbsolutePath() + " 目标不应该是文件, 应该是路径");
return;
}
else
destination.mkdirs();
//如果是文件
if (source.isFile()) {
try {
String filename = destination.getAbsolutePath() + File.separator + source.getName();
FileInputStream fis = new FileInputStream(source);
File file = new File(filename);
if (file.exists()) {
file.delete();
}
FileOutputStream fos = new FileOutputStream(file);
if(!StreamHelper.toOutputStream(fis, fos)) {
return;
}
fos.close();
fis.close();
Log.debug("复制 " + source.getAbsolutePath() + " 到 " + filename);
return;
}catch (IOException ex) {
Log.error(ex);
return;
}
}
//如果是目录
else {
File[] files = source.listFiles();
for (int i = 0; i files.length; i++) {
if (files[i].isDirectory()) {
String path = destination.getAbsolutePath() + File.separator + files[i].getName();
File folder = new File(path);
copyFiles(files[i], folder);
}else {
copyFiles(files[i], destination);
}
}
}
}
借助工具包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();
}
}
}
Java代码复制文件夹时,则需要利用Flie类在目标文件夹中创建相应的目录,并且使用递归方法,代码如下:
import java.io.*;
/**
* 复制文件夹或文件夹
*/
public class CopyDirectory {
// 源文件夹
static String url1 = "F:/photos";
// 目标文件夹
static String url2 = "D:/tempPhotos";
public static void main(String args[]) throws IOException {
// 创建目标文件夹
(new File(url2)).mkdirs();
// 获取源文件夹当前下的文件或目录
File[] file = (new File(url1)).listFiles();
for (int i = 0; i file.length; i++) {
if (file[i].isFile()) {
// 复制文件
copyFile(file[i],new File(url2+file[i].getName()));
}
if (file[i].isDirectory()) {
// 复制目录
String sourceDir=url1+File.separator+file[i].getName();
String targetDir=url2+File.separator+file[i].getName();
copyDirectiory(sourceDir, targetDir);
}
}
}
// 复制文件
public static void copyFile(File sourceFile,File targetFile)
throws IOException{
// 新建文件输入流并对它进行缓冲
FileInputStream input = new FileInputStream(sourceFile);
BufferedInputStream inBuff=new BufferedInputStream(input);
// 新建文件输出流并对它进行缓冲
FileOutputStream output = new FileOutputStream(targetFile);
BufferedOutputStream outBuff=new BufferedOutputStream(output);
// 缓冲数组
byte[] b = new byte[1024 * 5];
int len;
while ((len =inBuff.read(b)) != -1) {
outBuff.write(b, 0, len);
}
// 刷新此缓冲的输出流
outBuff.flush();
//关闭流
inBuff.close();
outBuff.close();
output.close();
input.close();
}
// 复制文件夹
public static void copyDirectiory(String sourceDir, String targetDir)
throws IOException {
// 新建目标目录
(new File(targetDir)).mkdirs();
// 获取源文件夹当前下的文件或目录
File[] file = (new File(sourceDir)).listFiles();
for (int i = 0; i file.length; i++) {
if (file[i].isFile()) {
// 源文件
File sourceFile=file[i];
// 目标文件
File targetFile=new File(new File(targetDir).getAbsolutePath()+File.separator+file[i].getName());
copyFile(sourceFile,targetFile);
}
if (file[i].isDirectory()) {
// 准备复制的源文件夹
String dir1=sourceDir + "/" + file[i].getName();
// 准备复制的目标文件夹
String dir2=targetDir + "/"+ file[i].getName();
copyDirectiory(dir1, dir2);
}
}
}
}
1,直接拷贝覆盖,不管是完整的带项目配置文件的java源程序,还是不完整的或缺少配置文件的都可以。\x0d\x0a具体步骤:\x0d\x0a先在Eclipse中新建空的工程并且命好名,然后把旧工程的目录里所有代码文件目录,直接拷贝覆到新建空的工程工程目录下,然后在eclipse中右击刷新就可以了。\x0d\x0a比如:新建工程名叫xxx,需要复制的工程文件名叫sss\x0d\x0a在本地磁盘打开xxx所在的文件,打开xxx目录,然后把sss目录下的所有文件复制到xxx目录下就可以了。在eclipse中刷新,再导入需要的jar包就行了。\x0d\x0a\x0d\x0a2,对于完整的带项目配置文件的java源码,按步骤操作即可:\x0d\x0aFile-Import-General\x0d\x0a选择ExistingProjectsintoWorkspace,选择要导入的文件,点击“finish",OK。\x0d\x0a\x0d\x0a3,对于不完整的工程(java程序源文件)或缺少工程配置文件的,\x0d\x0a先新建空的工程并且命好名\x0d\x0a然后File-Import-General\x0d\x0a选择FileSystem,点击“next”,Fromdirectory选择要导入的路径,\x0d\x0a注意intoFolder要选择刚刚建好的工程路径,点击“finish",OK。