在JAVA中删除具有扩展名的文件

时间:2017-07-20 13:13:40

标签: java

这是我的一段代码。有了这个我选择一个驱动器,在这种情况下说F驱动器。然后在执行我试图删除该文件夹中的文件时,虽然正在删除文件(正确输入时),但delete()返回false。我可以知道为什么会这样吗?

System.out.println("Enter file to be deleted:");
String del = sc.nextLine(); //give file name as string with extension
File delFile = new File(del); //convert string to file type
for (File fs: listOfFiles) {
    if (fs.getName().compareTo(delFile.getName()) == 0) {
        System.out.println(fs.getName());
        System.out.println("Inside loop");
        boolean dele = fs.delete();
        System.out.println("Successful/unsucceful: " + fs.getName() + "..." + fs.delete());
    } else
        System.out.println("invalid : " + fs.getName());
}

2 个答案:

答案 0 :(得分:6)

您的问题是,您已经删除后第二次致电fs.delete()。因为它不再存在,所以不能删除

只需调用您之前设置的布尔值:

System.out.println("Successful/unsucceful: " + fs.getName() + "..." + dele);

另外,作为旁注。我只会使用fs.getName().equals(delFile.getName())而不是compareTo

答案 1 :(得分:3)

因为您要拨打delete两次。第二次因为第一次被删除而导致错误。

更改此

System.out.println("Successful/unsucceful: " + fs.getName() + "..." + fs.delete());

System.out.println("Successful/unsucceful: " + fs.getName() + "..." + dele);