读取文件夹中所有文件工具栏,修改文件名Util

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.logging.Logger;

/**
 *
 *递归读取某个目录下的所有文件
 *
 */
public class ReadFileUtil {
    private static Logger logger = Logger.getLogger("读取文件异常:");

    //filePath 要读取的文件夹路径

    /**
     * 递归读取某个目录下的所有文件
     * @param filePath
     * @return
     */
    public static HashMap<String, String> getReadFileMap(String filePath) {
        HashMap<String, String> hashMap = new HashMap<>();
        File file = new File(filePath);
        File[] files = file.listFiles();//获取目录下的所有文件或文件夹
        if (files == null) {// 如果目录为空,直接退出
            logger.info("读取文件目录为空!");
            return null;
        }
        // 遍历,目录下的所有文件
        for (File f : files) {
            if (f.isFile()) {
                hashMap.put(f.getName(), f.getAbsolutePath());//存储文件名字+绝对路径
            }
        }
        return hashMap;
    }

    /**
     * 修改文件版本后缀
     * @param pathUpdate 文件绝对路径
     * @param version 版本号-递增
     */

    public static void getUpdateFileNameVersion(String pathUpdate,String version) {
        File oldFile = new File(pathUpdate);
        if (!oldFile.exists()){
            try {
                oldFile.createNewFile();//没有就创建
            } catch (IOException e) {
                System.out.println("创建文件失败");
                e.printStackTrace();
            }
        }
        System.out.println("修改前文件名称是:"+oldFile.getName());
        String rootPath = oldFile.getParent();
        System.out.println("根路径是:"+rootPath);
        String fileName = oldFile.getName();
        //获取文件前缀
        String fileNameQian = fileName.substring(0, fileName.lastIndexOf("."));
        System.out.println("前缀:"+fileNameQian);
        //获取文件后缀
        String suffix = fileName.substring(fileName.lastIndexOf(".") + 1);
        File newFile = new File(rootPath + File.separator + fileNameQian + version+"."+suffix);
        System.out.println("修改后文件名称是:"+newFile.getName());
        if (oldFile.renameTo(newFile)){
            System.out.println("修改成功!");
        }else {
            System.out.println("修改失败!");
        }
    }
}

测试:

 @Test
    public void testWord(){
        String path1 ="E:/测试读取文件";
        HashMap<String, String> fileMap = ReadFileUtil.getReadFileMap(path1);
        Iterator<Map.Entry<String, String>> iterator = fileMap.entrySet().iterator();
        while (iterator.hasNext()){
            Map.Entry<String, String> next = iterator.next();
            String key = next.getKey();
            String value = next.getValue();
            System.out.println("读取的文件名: "+key +"          "+"文件绝对路径:  "+value);
        }
    }


//打开文件
  @Test
    public void testOprnWord(){
        /**
         * 根据路径打开查看文件
         */
        final Runtime runtime = Runtime.getRuntime();
        Process process = null;
        final String cmd = "rundll32 url.dll FileProtocolHandler file://E:\\测试读取文件\\对比2.doc";//要打开的文件路径。
        try {
            process = runtime.exec(cmd);
        } catch (final Exception e) {
            System.out.println("Error exec!");
        }

    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
读取文件夹下所有文件名,我们可以使用Node.js的fs模块。具体来说,我们可以使用fs.readdirSync方法读取文件夹的所有文件名。 首先,需要安装Node.js和Vue CLI 3。在安装Vue CLI 3后,我们可以使用命令行工具进入我们的应用程序的根目录,在其新建一个名为util.js的文件。该文件将包含我们用于读取文件夹下所有文件名的函数。 接下来,我们可以使用下面的代码来实现读取文件夹下所有文件名的功能: ```javascript const fs = require('fs'); const path = require('path'); function getFiles(dir) { const files = fs.readdirSync(dir); let fileList = []; files.forEach((file) => { const filepath = path.join(dir, file); if (fs.statSync(filepath).isDirectory()) { fileList = fileList.concat(getFiles(filepath)); } else { fileList.push(filepath); } }); return fileList; } module.exports = { getFiles, }; ``` 上述代码,我们定义了一个名为getFiles的函数,该函数接受一个参数dir,我们需要读取文件夹的路径。该函数首先使用fs.readdirSync方法获取指定文件夹的所有文件文件夹的名称,并将它们存储在一个名为files的数组。 然后,我们使用forEach方法迭代files数组的每个文件文件夹,并使用fs.statSync方法获取每个文件文件夹的信息。如果当前项目是一个文件夹,则我们将递归调用getFiles函数,并将它返回的结果与当前数组合并。 如果项目是一个文件,则我们将添加该文件的完整路径到数组fileList。最后,我们将数组fileList返回给调用函数的代码。 我们可以在Vue的组件使用getFiles函数,以便动态加载文件夹文件。例如,我们可以在组件的script标记使用以下代码: ```javascript import { getFiles } from './util'; export default { name: 'MyComponent', data() { return { files: [], }; }, created() { this.files = getFiles('./directory/to/read'); }, }; ``` 上述代码示例,我们从已导出的getFiles函数导入它,并在组件的created生命周期钩子使用该函数获取指定文件夹的所有文件名。 总而言之,使用Node.js的fs模块以及一些递归代码,我们可以方便地读取指定文件夹的所有文件名,并在Vue组件使用这些文件名,以便动态地加载它们。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值