/**
* 剪切一个文件夹,且文件夹中包含内容,有问题的地方大家可以指出
*/
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("删除完成");
}
}
用Java实现文件的剪切
阅读(778) 评论(0)