我想编写一个java程序,通过它我可以删除计算机中具有特定扩展名或字符模式的所有文件。我还想在文件名上应用通配符。
提前致谢
答案 0 :(得分:5)
为了使你的程序真正有用,你需要做更多的思考,但对于一个启动者;
import java.io.File;
import java.util.regex.Pattern;
private static void walkDir(final File dir, final Pattern pattern) {
final File[] files = dir.listFiles();
if (files != null) {
for (final File file : files) {
if (file.isDirectory()) {
walkDir(file, pattern);
} else if (pattern.matcher(file.getName()).matches()) {
System.out.println("file to delete: " + file.getAbsolutePath());
}
}
}
}
public static void main(String[] args) {
walkDir(new File("/home/user/something"), Pattern.compile(".*\\.mp3"));
}
答案 1 :(得分:1)
旁注(不是答案,但你没有问过什么):注意递归。
答案 2 :(得分:1)
public void deleteFilesWithExtension(final String directoryName, final String extension) {
final File dir = new File(directoryName);
final String[] allFiles = dir.list();
for (final String file : allFiles) {
if (file.endsWith(extension)) {
new File(aDirectoryName + "/" + file).delete();
}
}
}