Java - 查找给定文件夹内的特定文件(基于条件)

时间:2017-11-09 16:02:13

标签: java file

我有一个代码,我给出了:   - "姓名"   - "扩展"   - "目录路径"。 我需要在"目录路径"中找到所有文件,其中包含" Name"作为其文件名和类型"扩展名"的子字符串。 我在网上发现了类似的问题,但没有一个有这种条件要求的问题。

1 个答案:

答案 0 :(得分:0)

假设您通过命令行参数获得了3个变量,则可以使用这种方法:

package com.sample.stack;

import java.io.File;
import java.io.FilenameFilter;

public class FileRenamenter {
    /**
     * @param args
     */
    public static void main(String[] args) {
        final String name = args[0]; // usefull, just to be clear
        final String extension = args[1]; // usefull, just to be clear
        final String directoryPath = args[2]; // usefull, just to be clear
        File directory = new File(directoryPath);
        // obtaing list of file wich name contain your «name» as substring
        String[] list = directory.list(new FilenameFilter(){
            public boolean accept(File dir, String name) {
                boolean matchExtension = name.endsWith(extension);
                boolean containsName = name.substring(0, name.length() - extension.length()).contains(name);
                return matchExtension && containsName;
            }
        });
        // echo file list
        for (String filePath : list) {
            System.out.println(filePath);
        }
    }
}