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