|
copy目录下的所有的文件和子目录到另一个目录
import java.io.*;
public class CopyDirectory{
public static void main(String[] args) throws IOException{
CopyDirectory cd = new CopyDirectory();
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Enter the source directory or file name : ");
String source = in.readLine();
File src = new File(source);
System.out.println("Enter the destination directory or file name : ");
String destination = in.readLine();
File dst = new File(destination);
cd.copyDirectory(src, dst);
}
public void copyDirectory(File srcPath, File dstPath) throws IOException{
if (srcPath.isDirectory()){
if (!dstPath.exists()){
dstPath.mkdir();
}
String files[] = srcPath.list();
for(int i = 0; i < files.length; i++){
copyDirectory(new File(srcPath, files), new File(dstPath, files));
}
} else{
if(!srcPath.exists()){
System.out.println("File or directory does not exist.");
System.exit(0);
}else{
InputStream in = new FileInputStream(srcPath);
OutputStream out = new FileOutputStream(dstPath);// Transfer bytes from in to out
byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}
in.close();
out.close();
}
}
System.out.println(srcPath.toString()+" copied.");
}
}
运行:
C:\test>java CopyDirectory
Enter the source directory or file name :
c:\work
Enter the destination directory or file name :
c:\test\work1
c:\work\123\Node.class copied.
c:\work\123 copied.
c:\work\BMTest.class copied.
c:\work\BMTest.java copied.
c:\work\KMP.class copied.
c:\work\KMP.java copied.
c:\work\KMP_Next.class copied.
c:\work\KMP_Next.java copied.
c:\work\Main.class copied.
c:\work\Main.java copied.
c:\work\PM_BM.class copied.
c:\work\PM_BM.java copied.
c:\work\PM_BruteForce.class copied.
c:\work\PM_BruteForce.java copied.
c:\work\PM_KMP.class copied.
c:\work\片段.shs copied.
c:\work copied. |
|