this a typical directory problemwhen there are diretories inside other directory, you need to use iteration function to help find all the files,
if there is a subdirectory, then create a subdirectory under src2
if there is a subdirectory, then create a subdirectory under src2
-------------------------qq:6117340
if(文件){
copy
}else{
mkdir;
Fun(子目录);
}
}
public class FileTest {
String sourceDir = new String("C:/test/src/");
String objectDir = new String("C:/test/src2/");
public static void main(String[] args) {
new FileTest().run();
}
public void run (){
copyDir(sourceDir, objectDir);
} private void copyDir(String oriDirSource, String oriDirObject){ java.io.File mydir = new java.io.File(oriDirSource);
String FileNames[] = mydir.list();
System.out.println(FileNames);
for (int i = 0; i < FileNames.length; i++) {
System.out.println(FileNames[i]);
System.out.println("-----------------------------");
try { // +++++++ added code
java.io.File fileSource = new java.io.File(oriDirSource+FileNames[i]);
if(fileSource.isDirectory()) {
java.io.File fileObject = new java.io.File(oriDirObject+FileNames[i]);
fileObject.mkdir();
copyDir(oriDirSource+FileNames[i]+"/", oriDirObject+FileNames[i]+"/");
}else { java.io.FileInputStream fis = new java.io.FileInputStream(oriDirSource + FileNames[i]);
java.io.FileOutputStream fos = new java.io.FileOutputStream(oriDirObject + FileNames[i]); // +++++++ added code
int c = 0;
while ((c = fis.read()) != -1)
fos.write(c); }
}
catch (java.io.IOException ioe) {
System.out.println(ioe.toString());
}
} }
}
/**
* @version 1.20 21 Aug 1997
* @author Cay Horstmann
*/
public class FileTest {
public static void main(String[] args) {
FileTest ft = new FileTest();
ft.copyFiles("C:/src/", "C:/src2/");
}
public void copyFiles (String sSource, String sTarget) {
java.io.File mydir = new java.io.File(sSource);
java.io.File FileNames[] = mydir.listFiles();
for (int i = 0; i < FileNames.length; i++) {
System.out.println(FileNames[i].getName());
System.out.println("-----------------------------");
if (!FileNames[i].isDirectory()) {
try {
java.io.FileInputStream fis = new java.io.FileInputStream(sSource + FileNames[i].getName());
java.io.FileOutputStream fos = new java.io.FileOutputStream(sTarget + FileNames[i].getName());
int c = 0;
while ((c = fis.read()) != -1)
fos.write(c);
}
catch (java.io.IOException ioe) {
System.out.println(ioe.toString());
}
}
else {
/* create a new directory under the earliest directory. */
java.io.File subDir = new java.io.File(sTarget + FileNames[i].getName() + "/");
subDir.mkdir();
copyFiles(sSource + FileNames[i].getName() + "/", sTarget + FileNames[i].getName() + "/");
}
}
}
}
给各位分了