包com.demo;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
public class MoveFile {
public static void main(String[] args) {
String srcPath="C:\\demo1";
String descPath="D:\\moveFileDemo";
moveFile(srcPath,descPath);
}
/ **
*文件
搬家的方法* @param srcPath
* @param descPath
* /
private static void moveFile(String srcPath,String descPath){
//获取文件
文件srcFile = new File(srcPath);
//获取源文件中所有子文件
File [] files = srcFile.listFiles();
//判断是否为空
if(files!= null && files.length> 0){
for(File file:files){
//获取拷贝目标路径
String targetPath = file.getAbsolutePath()。replace(srcPath,descPath);
的System.out.println(TARGETPATH);
//判断是否为目录
if(file.isDirectory()){
//创建拷贝目标目录
createDirectory(TARGETPATH);
//递归查找文件
moveFile(file.getAbsolutePath(),TARGETPATH);
} else {
copyFile(file.getAbsolutePath(),targetPath);
}
//删除目录
file.delete();
}
}
//删除最外面文件夹
srcFile.delete();
}
/ **
*定义创建目录的方法
* @param targetPath
* /
private static void createDirectory(String targetPath){
File dir = new File(targetPath);
if(!dir.exists()){
dir.mkdirs();
}
}
/ **
*定义拷贝文件的方法
* @param srcPath
* @param destPath
* /
private static void copyFile(String srcPath,String destPath){
File srcFile = new File(srcPath);
try(
//获取文件的输入流
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(srcFile));
//获取文件输出流
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(new File(destPath)));
){
//定义缓存区
byte [] buffer = new byte [1024];
//定义存储每次读取的字节数
int len = 0;
while((len = bis.read(buffer))!= - 1){
bos.write(buffer,0,len);
}
//删除源文件
srcFile.delete();
} catch(Exception e){
e.printStackTrace();
}
}
}