java转移目录下某些文件到另一目录 renameTo使用

前言:
转移文件看到一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版权协议,转载请附上原文出处链接和本声明。