File类的综合运用,拷贝文件夹和文件夹中的文件
程序员文章站
2022-06-16 21:33:26
...
package com.neuedu.chapter03;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
/**
* 拷贝目录(包括目录中子目录和文件)
* @author Administrator
*
*/
public class TestCopyDirectory {
public static void main(String[] args) {
//指定源目录和目标目录
String srcName = "D:\\FY18_01\\课堂笔记";
String destName = "D:\\FY18_01\\tmp";
//调用拷贝目录的方法
copyDirectory(srcName, destName);
}
/**
* 拷贝目录
* @param srcName:源目录的抽象路径名
* @param destName:目标目录的抽象路径名
*/
private static void copyDirectory(String srcName, String destName) {
//根据给定的源目录和目标目录的字符串创建File对象
File source = new File(srcName);
File dest = new File(destName);
//判断当前sourceFile是文件还是目录
if(source.isFile()) { //如果是文件
//调用拷贝文件的方法
copyFile(source, dest);
}else{//开始拷贝目录
//第一步先确定该目录下的子文件和目录
String[] files = source.list();
//获取当前的源目录和目标目录的绝对路径名称
String srcPath = source.getAbsolutePath();
String destPath = dest.getAbsolutePath();
//转化路径名称为File对象
File sFile;
File dFile;
//对当前目录中的子目录和文件进行遍历
for(int i = 0; i < files.length; i++) {
//创建File对象
sFile = new File(srcPath, files[i]);
dFile = new File(destPath, files[i]);
//判断当前的File对象是目录还是文件
if(sFile.isFile()) {
//调用拷贝文件的方法
copyFile(sFile, dFile);
}else{
//向目标路径创建目录
dFile.mkdir();
copyDirectory(sFile.getAbsolutePath(), dFile.getAbsolutePath());
}
}
}
}
/**
* 拷贝文件
* @param source:源文件
* @param dest:目标文件
*/
private static void copyFile(File source, File dest) {
//定义文件输入流对象
FileInputStream fis = null;
//定义文件输出流对象
FileOutputStream fos = null;
try {
//创建流对象
fis = new FileInputStream(source);
fos = new FileOutputStream(dest);
//定义缓冲数组
byte[] buff = new byte[1024];
//定义变量保存读到的字节数
int len = 0;
//循环读取
while((len = fis.read(buff)) != -1){
//将读到的数据写到输出流中
fos.write(buff, 0, len);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally{
try {
fis.close();
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
下一篇: vue 动态组件component
推荐阅读
-
主机和VMware中的Linux实现共享文件夹的图文教程
-
PHP操作文件类的函数代码(文件和文件夹创建,复制,移动和删除)
-
Android 中raw和assets文件夹的区别
-
C#拷贝整个文件夹及子目录和其中文件的方法
-
解决python中os.listdir()函数读取文件夹下文件的乱序和排序问题
-
主机和VMware中的Linux实现共享文件夹的图文教程
-
MAC系统中怎么查找微信小视频和图片保存的文件夹地址?
-
Win10系统修改主机名、用户名称和密码、以及C盘中的用户文件夹名
-
在VB中遍历文件并用正则表达式完成复制及vb实现重命名、拷贝文件夹的方法
-
File类的综合运用,拷贝文件夹和文件夹中的文件