[英]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);
}
我在代码片段中看到了一些编译错误。
System.out.println (file:" + file);
该语句不会编译。 可能您的意思是:
System.out.println ("file: "+file);
deleta
变量声明为static
。 这意味着您必须将其设置为“ Class”级别。 因此,如果将deleta
和file
作为类级别的变量,则不能具有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.