Java 如何正确删除文件?

Java 如何正确删除文件?,java,delete-file,Java,Delete File,使用org.apache.commons.io.FileUtils从img目录删除文件时出现问题。我正在使用以下代码: File dir = new File(".\\img"); FileFilter fileFilter = new WildcardFileFilter(userId + ".*"); File[] files = dir.listFiles(fileFilter); System.out.println("files found: " + files

使用org.apache.commons.io.FileUtils从img目录删除文件时出现问题。我正在使用以下代码:

File dir = new File(".\\img");
    FileFilter fileFilter = new WildcardFileFilter(userId + ".*");
    File[] files = dir.listFiles(fileFilter);
    System.out.println("files found: " + files.length);
    for (int i = 0; i < files.length; i++) {
        boolean success = FileUtils.deleteQuietly(files[i]);
        System.out.println(files[i] + " delete result = " + success);
    }
}
File dir=新文件(“.\\img”);
FileFilter FileFilter=新的通配符FileFilter(userId+“*”);
File[]files=dir.listFiles(fileFilter);
System.out.println(“找到的文件:“+files.length”);
对于(int i=0;i
实际上,该代码用于将img目录中存在的图像文件替换为新文件。我需要删除所有以前存在的文件,名称为n.*,新文件如n.png。如果试图删除图像文件,则变量success的值为false,并且文件不会被删除。但不是图像文件,例如。*.abc;*。acd;*。已成功删除acdc等。这个问题是怎么回事?

试试这个:

java.nio.file.Files.delete(files[i].toPath());

并查看将引发什么异常

此代码适用于我:

File dir = new File("/home/abhijith/.img");
        FileFilter fileFilter = new WildcardFileFilter("abc"+".*");
        File[] files = dir.listFiles(fileFilter);
        System.out.println("files found: " + files.length);
        for (int i = 0; i < files.length; i++) {
            boolean success = org.apache.commons.io.FileUtils.deleteQuietly(files[i]);
            System.out.println(files[i] + " delete result = " + success);
        }

末端有一个闭合支架,没有匹配的开口支架,压痕很奇怪。代码中是否缺少一些if语句?能否提供一个输出示例?为什么不尝试调用
文件[i].delete()
,看看引发了什么异常。尝试使用jdk File.delete方法而不是delete方法。我希望它会引发某种例外。如果有错误需要解决,则调试会容易得多。其次,
FileUtils.deletequity()
“删除文件,从不引发异常。”引用他们的javadoc,因此无法使用此方法进行调试。
files found: 1
/home/abhijith/.img/abc.jpg delete result = true