Java实现文件复制功能

本文介绍了如何使用Java实现文件复制功能,包括全量复制、按关键字筛选复制。提供了`getFileList`方法获取文件列表,`copy`方法进行文件复制,并提供`copyByKey`方法按特定关键字筛选复制文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

private static List fileList = new ArrayList();

/**

  • 获取文件列表

  • @param sourceFolderDirectory 源文件夹目录

  • @param isAll 是否获取全部文件,true获取全部,fa 《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】 lse只获取路径下的文件,不包括路径下子文件夹的文件

  • @return 返回文件列表

*/

public static List getFileList(String sourceFolderDirectory, boolean isAll) {

File dir = new File(sourceFolderDirectory);

// 该文件目录下文件全部放入数组

File[] files = dir.listFiles();

if (files == null) {

return null;

}

for (File file : files) {

if (file.isDirectory() && isAll) {

getFileList(file.getAbsolutePath(), true);

} else if (file.isDirectory()) {

continue;

} else {

fileList.add(file);

}

}

return fileList;

}

/**

  • 文件复制

  • @param absolutePath 源文件路径

  • @param targetFolderDirectory 目标文件夹目录

*/

public static void copy(String absolutePath, String targetFolderDirectory) {

File dir = new File(targetFolderDirectory);

if (!dir.isDirectory()) {

//如果目录不存在则创建

dir.mkdir();

}

String newFileName = absolutePath.substring(absolutePath.lastIndexOf(“\”)+1);

targetFolderDirectory += File.separator + newFileName;

try {

FileInputStream fis = new FileInputStream(absolutePath);

FileOutputStream fos = new FileOutputStream(targetFolderDirectory);

byte[] datas = new byte[1024 * 8];

int len;

while((len = fis.read(datas))!=-1) {

fos.write(datas,0,len);

}

fis.close();

}

catch (Exception e) {

e.printStackTrace();

}

}

/**

  • 根据关键字复制

  • @param sourceFolderDirectory 源文件夹目录

  • @param targetFolderDirectory 目标文件夹目录

  • @param key 关键字 (为null或""时 复制所有)

*/

public static void copyByKey(String sourceFolderDirectory, String targetFolderDirectory, String key){

List fileList = getFileList(sourceFolderDirectory, true);

if (fileList == null){

return;

}

for (File file : fileList) {

if (key != null && !file.getAbsolutePath().contains(key)){

continue;

}

copy(file.getAbsolutePath(),targetFolderDirectory);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值