Java 如何正确删除文件?
使用org.apache.commons.io.FileUtils从img目录删除文件时出现问题。我正在使用以下代码: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
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