文件搜索
搜索带有关键词pump的文件:
/** this is a search file test
* @author XYM_
* @date 2021-4-19
* @version 1.0
*/
import java.io.*;
import java.util.*;
public class SearchTest{
/**
* method to search file
* @param dir file path
* @param key keyword
* @param searchHidden
* @author XYM_
* @version 1.0
*/
public static void searchFile(String dir, String key, boolean searchHidden){
File file = new File(dir);
File[] files = file.listFiles();
String fName;
String fPath;
if(files != null){
for(File f:files){
//not to search hidden files
if(!searchHidden==true && f.isHidden()==true){
continue;
}
fName = f.getName();
fPath = f.getPath();
if(f.isFile()==true){
if(fName.toLowerCase().contains(key)==true){
System.out.println("file path: " + fPath);
}
}
else if(f.isDirectory()==true){
searchFile(fPath, key, searchHidden);
}
}
}
}
public static void main(String[] args){
String dir = "D:/PractiseJava";
String key = "pump";
boolean sh = true;
try{
searchFile(dir, key, sh);
}catch(Exception e){
e.printStackTrace();
}
}
}
运行结果:
D:\PractiseJava\File>javac SearchTest.java
D:\PractiseJava\File>java SearchTest
file path: D:\PractiseJava\Annotations\Pump.class
file path: D:\PractiseJava\Annotations\SpPump.class
file path: D:\PractiseJava\Exceptions\PumpCtrlDemo.class
file path: D:\PractiseJava\Exceptions\PumpCtrlDemo.java
file path: D:\PractiseJava\Monitor\MoniTest\Pump.class
file path: D:\PractiseJava\Monitor\MoniTest\Pump.java
file path: D:\PractiseJava\Monitor\MoniTest\PumpTest.class
file path: D:\PractiseJava\Monitor\MoniTest\PumpTest.java
file path: D:\PractiseJava\Monitor\MoniTest\subFile\Pump.class
file path: D:\PractiseJava\Pump\Pump.java
file path: D:\PractiseJava\Pump\PumpBuilder.java
file path: D:\PractiseJava\Pump\PumpDirector.java
file path: D:\PractiseJava\Pump.class
file path: D:\PractiseJava\Pump.java
file path: D:\PractiseJava\PumpTest.class
file path: D:\PractiseJava\PumpTest.java
修改文件夹图标
Windows系统默认图标在shell32.dll中,不知道如何用java访问,c++可以访问,然后用jni调用程序…