正在尝试删除以名称TRTHIndicative_开头的文件夹中的特定文件。
但是文件没有删除,正在使用下面的代码
testMethod(inputDir);
testMethod(outputFile);
private static void testMethod(String dirName){
File directory = new File(dirName);
// Get all files in directory
File[] files = directory.listFiles();
for (File file : files) {
if (file.getName().startsWith("Indicative_")) {
// Delete each file
if(file.exists()){
System.out.println("File is there!");
}
if (file.delete()) {
// Failed to delete file
System.out.println("Failed to delete " + file);
} else {
System.out.println("Deleted file succsfully");
}
}
}请检查一下,如果有什么问题请告诉我。
发布于 2014-01-28 07:51:05
我认为您试图删除的文件中有权限错误。埃托罗的回答对我也很好。尝试给予每个用户如何更改windows中的文件权限读/写权限
发布于 2014-01-28 07:07:03
您的if和else混淆了--如果文件已成功删除,File#delete()将返回true。因此,这种情况应予以扭转:
if (file.delete()) {
System.out.println("Deleted file succesfully");
} else {
// Failed to delete file
System.out.println("Failed to delete " + file);
}发布于 2014-01-28 07:15:10
莫里尼克是对的。我刚试过你的密码。效果很好。只需按以下方式进行更改:
public class Main {
public static void main(String[] args) {
File directory = new File("C:/temp");
File[] files = directory.listFiles();
for (File file : files) {
if (file.getName().toLowerCase().startsWith("blub")) {
// Delete each file
if (file.exists()) {
System.out.println("File is there!");
}
if (file.delete()) {
System.out.println("Deleted file succsfully");
} else {
// Failed to delete file
System.out.println("Failed to delete " + file);
}
}
}
}}
注意我添加的toLowerCase()。它将使您的代码片段更易于使用。
https://stackoverflow.com/questions/21398959
复制相似问题