繁体   English   中英

错误-删除Java中的文件返回false

[英]Error - Deleting files in java returning false

我正在尝试使用Java通过以下代码从目录中删除文件:

static String deleta ="C:\\res\\in\\CANteste2.xml";
.
.
.
Boolean file = new File (deleta) .delete();
System.out.println ("file:" + file);

权限: http//imgur.com/a/dVPPW

但是它总是返回false且没有错误

如果使用Java 7,则应使用try and catch代码删除文件,然后使用Files API

或尝试在删除文件之前检查File exists()方法

try {
    Files.delete(path);
} catch (NoSuchFileException x) {
    System.err.format("%s: no such" + " file or directory%n", path);
} catch (DirectoryNotEmptyException x) {
    System.err.format("%s not empty%n", path);
} catch (IOException x) {
    // File permission problems are caught here.
    System.err.println(x);
}

我在代码片段中看到了一些编译错误。

  1. System.out.println (file:" + file);

该语句不会编译。 可能您的意思是:

    System.out.println ("file: "+file);
  1. 这三行将不会以单一方法出现。 原因是您已将deleta变量声明为static 这意味着您必须将其设置为“ Class”级别。 因此,如果将deletafile作为类级别的变量,则不能具有System.out.println ("file: "+file); 在班级。 Syso语句应在方法中。

最后,您的代码应如下所示:

public class Test {
static String deleta = "C:\\res\\in\\CANteste2.xml";
Boolean file = new File(deleta).delete();

public static void main(String[] args) {
    Test test = new Test();
    test.print();
}

public void print() {
    System.out.println("file: " + file);
}
}

如果文件是PRESENT并且现在已删除,则此代码将返回TRUE。 如果在目录中找不到该文件,它将返回FALSE。

因此,在第一个实例中,您将运行代码,将输出为TRUE(如果存在文件)。 从第二个实例开始,您将得到的输出为FALSE,因为它已被删除!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM