我(相对而言)对Java还很陌生,我试图实现一个可以运行一系列命令的.jar文件,在Windows XP的命令提示符中可以这样写:
cd\
cd myfolder
del *.lck /s
我的(失败的)尝试:
// Lists all files in folder
File folder = new File(dir);
File fList[] = folder.listFiles();
// Searchs .lck
for (int i = 0; i < fList.length; i++) {
String pes = fList.get(i);
if (pes.contains(".lck") == true) {
// and deletes
boolean success = (new File(fList.get(i)).delete());
}
}
我在那个“get(i)”附近搞砸了,但我认为我离我的目标非常接近了。
我请求您的帮助,在此先行致谢!
编辑
好的!非常感谢大家。经过三次建议的修改,我最终得到了:
// Lists all files in folder
File folder = new File(dir);
File fList[] = folder.listFiles();
// Searchs .lck
for (int i = 0; i < fList.length; i++) {
String pes = fList[i];
if (pes.endsWith(".lck")) {
// and deletes
boolean success = (new File(fList[i]).delete());
}
}
现在它可以工作了!
2022版本:
public static boolean deleteAllFilesWithSpecificExtension(String pathToDir, String extension) {
boolean success = false;
File folder = new File(pathToDir);
File[] fList = folder.listFiles();
for (File file : fList) {
String pes = file.getName();
if (pes.endsWith("." + extension)) {
success = (new File(String.valueOf(file)).delete());
}
}
return success;
}
get
方法,这意味着fList.get(i)
无法编译。相反,要访问数组中的对象i
,请使用fList[i]
。 - FThompsonendsWith(...)
而不是contains(...)
,除非你也想删除类似myfile.lck.exe这样的文件。 - Jon Newmuis