Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用java从我的计算机中删除所有具有特定扩展名的文件_Java - Fatal编程技术网

如何使用java从我的计算机中删除所有具有特定扩展名的文件

如何使用java从我的计算机中删除所有具有特定扩展名的文件,java,Java,您好,我想写一个java程序,通过它我可以删除我的计算机上所有文件的名称中有特定扩展名或字符模式。我还想在文件名上应用通配符 提前感谢旁注(不是答案,但你没有问什么):注意递归。为了让你的程序真正有用,你需要做更多的思考,但对于初学者 import java.io.File; import java.util.regex.Pattern; private static void walkDir(final File dir, final Pattern pattern) { final F

您好,我想写一个java程序,通过它我可以删除我的计算机上所有文件的名称中有特定扩展名或字符模式。我还想在文件名上应用通配符


提前感谢

旁注(不是答案,但你没有问什么):注意递归。

为了让你的程序真正有用,你需要做更多的思考,但对于初学者

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"));
}

我希望你在这方面一切顺利,但老实说,这听起来不像一个问题。测试这个程序时要小心。最好让它执行
System.out.println(文件)
而不是
file.delete()
在您确定它能正常工作之前……您可能想看看这个类在本教程中如何查找文件。格式c:应该足够好。实际上我们有自己的产品,因为这些产品在我的计算机中不同的位置创建了许多日志和tmp文件,还有一些其他应用程序,当数量非常大时,他们会制造麻烦,一些时间磁盘空间不足或一些时间系统挂起,因此我们的测试部门说,创建一个java程序,根据通配符功能从我的计算机中删除文件。它工作得很好,我可以从中完成我需要的工作。谢谢@ZeroPage
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();
        }
    }
}