2016-12-26 36 views
2

我试图删除使用Java与下面的代码目录中的文件:错误 - 在java中删除文件返回false

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返回

+1

你确定你有权限删除你与正在运行的Java用户的文件吗?这可能是一个潜在的原因。 –

+0

或者更简单 - 你确定该文件确实存在(和你没有在路径/名称的任何错字)? – Mureinik

+0

@Mureinik是啊,它的正确 – NTI

回答

0

你应该使用try和catch代码删除文件 如果使用的Java 7,然后使用文件API

或尝试删除文件

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); 
} 
+0

java.nio.file.FileSystemException:O型arquivoJáESTA仙道usado POR结尾processo。 (该由另一个进程使用归档) – NTI

0

我看到的代码片段一些编译错误之前检查File exists()方法。

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

此语句将无法编译。大概你的意思:

System.out.println ("file: "+file); 
  • 三个线将不存在于一个单独的方法。原因是您已声明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); 
    } 
    } 
    

    此代码将返回TRUE,如果文件存在,现在删除。如果在目录中找不到该文件,它将返回FALSE。

    所以一审将要运行的代码,你会得到输出TRUE(如果该文件存在)。从第二个例子开始,你将得到输出为FALSE,因为它已经被删除了!

    +0

    1.修正,它的一个输入错误,对不起 – NTI

    +0

    2.我在后添加目录 – NTI

    +0

    2的图像其静态的,因为在我的代码,“删除”的方法之外 – NTI

    相关问题