/** * 剪切一個文件夾,且文件夾中包含內容,有問題的地方大家可以指出 */import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileI ...
/**
* 剪切一個文件夾,且文件夾中包含內容,有問題的地方大家可以指出
*/
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class Shear {
// 創建文件複製文件方法,以便調用
public static void copy(File f1, File f2) throws IOException {
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(f1));
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(f2));
int len = 0;
byte[] b = new byte[1024];
while ((len = bis.read(b)) != -1) {
bos.write(b, 0, len);
}
bis.close();
bos.close();
}
// 此處方法調用複製文件方法,將其與創建文件夾的方法整合
public static void copy2(File f, File f2) throws Exception {
if (!f2.exists()) {
f2.mkdirs();// mkdir創建指定目錄,mkdirs可創建多層不存在的目錄
}
File[] arr = f.listFiles();
for (int i = 0; i < arr.length; i++) {
if (arr[i].isFile()) {
copy(arr[i], new File(f2.getPath() + "\\" + arr[i].getName()));
} else {// 此處"\\"僅適用於windows平臺,若想實現通用,可將其改為separator
copy2(arr[i], new File(f2.getPath() + "\\" + arr[i].getName()));
}
}
}
// 創建刪除方法,複製完成後刪除文件
public static void Del(File f) {
if (f.isFile()) {
f.delete();
} else {
File[] arr = f.listFiles();
for (int i = 0; i < arr.length; i++) {
Del(arr[i]);
}
f.delete();
}
}
public static void main(String[] args) throws Exception {
// 讀取文件和創建文件夾
// 1、判斷該文件下是否存在文件
File f = new File("OldPath");// "OldPath"指舊的文件路徑
File f2 = new File("NewPath");// "NewPath"指新的文件路徑
copy2(f, f2);
System.out.println("複製完成");
Del(f);
System.out.println("刪除完成");
}
}