java - 如何按用户输入的扩展名和名称搜索文件?
问题描述
我应该在我的代码中的哪里包含一条语句,以便它通过已编码的扩展名和用户输入的文件名进行搜索?
private void btnSearchMouseClicked(java.awt.event.MouseEvent evt) {
File folder = new File(txtLocation.getText());
String name = new String (txtName.getText());
if(folder.isDirectory() == true){
String [] files = folder.list();
String fileNames = "";
for(int i=0; i<files.length; i++){
int index = files[i].indexOf(".");
String extension = files[i].substring(index);
if(extension.equals(".jpg")==true ){
fileNames += "\n" + files[i];
}
}
txtListOfFiles.setText("Files found:" + fileNames);
}
解决方案
import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;
import java.util.Scanner;
public class DirectoryContents {
public static void main(String[] args) throws IOException {
File f = new File("c:\\temp\\"); // current directory
Scanner myObj = new Scanner(System.in); // Create a Scanner object
System.out.println("Enter file ext:");
final String fileExt = myObj.nextLine(); // Read user input
System.out.println("file ext is: " + fileExt);
myObj.close();
File[] files = f.listFiles(new FilenameFilter() {
public boolean accept(File dir, String name) {
return name.toLowerCase().endsWith("." +fileExt);
}
});
for (File file : files) {
if (file.isDirectory()) {
System.out.print("directory:");
} else {
System.out.print(" file:");
}
System.out.println(file.getCanonicalPath());
}
}
}
推荐阅读
- binary - 如何在没有 uudecode、base64 或 x/y/z/ 调制解调器的情况下通过串口传输二进制文件?
- apache-spark - 使用 spark 中的 Pushdown 查询,如何在 spark-HBASE(BIGSQL 作为 SQL 引擎)中获得并行性?
- docker - 安装 dotnet core 工具 Dockerfile
- python - Python - %粘贴
- python - 分配/检索方法在单独的链接 Python 哈希图中不起作用
- reactjs - this.setState 不是函数,react-native
- android - React Native marginTop 在 TouchableOpacity 中偏移文本位置
- reactjs - 获取和会话以及 CORS
- selenium-webdriver - 如何使用量角器切换没有 id 的复选框
- laravel - Laravel 在控制器中更改 url 参数