前言:
转移文件看到一csdn博文的fileMove类,直接拿来用了。因网页清除历史记录,暂时无法找到原博主的博文及这一方法类来源。
注:本文引用其博文fileMove类。
正文:
文件目录如下:
oricah:原文件目录
oriachlog:转移后的目录
splitcah:拆分源文件数据生成新文件的目录
现原目录 文件:
注:此目录下只转移SM_6270 IM_6270 PM_6270文件
现目标目录:
代码如下:
建立fileMove方法(此方法引用他人直接拿来用了),直接调用该方法,填写参数实现。
public static int fileMove(String from, String to) {
try {
File dir = new File(from);
File[] files = dir.listFiles();
if (files == null) {
return -1;
}
File moveDir = new File(to);
if (!moveDir.exists()) {
moveDir.mkdirs();
System.out.println("已新建一个目标移动文件夹");
}
for (int i = 0; i < files.length; i++) {
System.out.println("files[i].isDirectory():" + files[i].isDirectory());
if (files[i].isDirectory()) {
fileMove(files[i].getPath(), to + dir.separator + files[i].getName());
files[i].delete();
}
File moveFile = new File(moveDir.getPath() + dir.separator + files[i].getName());
if (moveFile.exists()) {
moveFile.delete();
}
files[i].renameTo(moveFile);
}
System.out.println("文件移动成功!");
} catch (Exception e) {
System.out.println("移动文件出现异常,异常信息为[" + e.getMessage() + "]");
return -1;
}
return 0;
}
以上这个方法是定义好直接可以拿来使用,调用即可。
(参考思路即可)
// 原目录 ,目标目录
fileMove("E:\\cahsplit\\oricah", "E:\\cahsplit\\oricahlog");
那么renameTo使用方式如下:
这里是根据已有的规则进行判断,转移文件时后缀加了当前日期的方法进行区分文件,这里只是举例参考,可用其他方式进行选择。(方式不重要,业务需求满足或者目的达到即可)
public static void main(String[] args) {
// 源文件目录
File file = new File(StringData.PATH_IN);
// 转移后的目录
File file2 = new File(StringData.PATH_REMOVE);
// listFiles 源文件目录下的文件
File[] listFiles = file.listFiles();
File[] listFiles2 = file2.listFiles();
// 遍历源文件目录下文件
for (int i = 0; i < listFiles.length; i++) {
File f = listFiles[i];
System.out.println(f.getName());
System.out.println(f.getName().substring(0, 7).equals("PM_6270"));
// 移动的文件前缀为SM_6270 PM_6270 IM_6270
if (f.getName().substring(0, 7).equals("SM_6270") || f.getName().substring(0, 7).equals("PM_6270")
|| f.getName().substring(0, 7).equals("IM_6270")) {
// 原目录下要转移的文件
File startFile = listFiles[i];
// 转移后的位置目录
File endDirection = file2;
String name = startFile.getName();
StringBuffer buffer = new StringBuffer();
// SM_6270_KDLSH_20210601_DD_01.CSV
// 源文件名称追加当天日期进行文件区分,oricahlog目录文件查看。
StringBuffer insert = buffer.append(name).insert(28,
"_" + new CalendarUtil().getNow(CalendarUtil.FORMAT_1));
String s = endDirection + File.separator + startFile.getName();
// 目的文件路径=目的目录路径+源文件名称
if (startFile.renameTo(new File(endDirection + File.separator + buffer.toString()))) // 源文件移动至目标文件目录
{
System.out.println(f.getName() + "File is moved successful!");// 输出移动成功
} else {
System.out.println(f.getName() + "File is failed to move !");// 输出移动失败
}
}
}
代码执行后的目录:
这时候,已经满足需求,此时便可。
版权声明:本文为m0_46065798原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。