需求
(1)将某个文件夹下以”aaa.bbb.ccc“形式命名的文件进行拆分,将获取到的字段在另一个目录下进行分级创建,如图:
(2)将原文件夹下所有文件移动到copy文件夹下(文件之间的层级跟原文件夹的对应)(后续进行的删除和修改操作全部在copy文件夹下进行,确保原文件夹不受变动)
(3)将以随机码命名的文件夹下的jar包移动到上一级目录,并且把随机码命名的文件夹删除(所有操作在copy文件夹下进行,原文件夹均保持不变),如图:
-
原本的目录层级
-
整理后的目录层级
——其实实际应用场景是jar包的整合,比如jar包缺少时,拿到一个完整的jar包文件,但是命名格式不标准导致无法使用,这时候我们就需要把文件整合成标准目录层级,把随机码命名的文件夹下的jar移动到上一级目录并且删掉随机码命名的文件夹,如图: -
拿到的完整jar包文件
-
整合好的jar包文件
代码
package com.test;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
/**
* @author Lu Yurong
* @description fileManagement 获取文件名,拆分后分级创建;
* 把文件全部复制到copy文件夹下;移动jar包,删除随机码文件夹
* @since 2021/12/15
*/
public class fileManagement {
public static String path1 = "E:\\files";
public static String path2 = "E:\\files-copy";
public static void main(String[] args) throws IOException{
List < String > files = getFilesList(path1);
/*
首先创建文件夹副本files-copy,把文件夹files复制过来,
后续的所有操作都在副本中进行,原文件不做任何变动
*/
File dir = new File(path2);
dir.mkdir();
createSubdirectories(files