我试图删除使用Java与下面的代码目录中的文件:错误 - 在java中删除文件返回false
static String deleta ="C:\\res\\in\\CANteste2.xml";
.
.
.
Boolean file = new File (deleta) .delete();
System.out.println ("file:" + file);
但它没有错误总是false
返回
我试图删除使用Java与下面的代码目录中的文件:错误 - 在java中删除文件返回false
static String deleta ="C:\\res\\in\\CANteste2.xml";
.
.
.
Boolean file = new File (deleta) .delete();
System.out.println ("file:" + file);
但它没有错误总是false
返回
你应该使用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);
}
java.nio.file.FileSystemException:O型arquivoJáESTA仙道usado POR结尾processo。 (该由另一个进程使用归档) – NTI
我看到的代码片段一些编译错误之前检查File exists()
方法。
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);
}
}
此代码将返回TRUE,如果文件存在,现在删除。如果在目录中找不到该文件,它将返回FALSE。
所以一审将要运行的代码,你会得到输出TRUE(如果该文件存在)。从第二个例子开始,你将得到输出为FALSE,因为它已经被删除了!
你确定你有权限删除你与正在运行的Java用户的文件吗?这可能是一个潜在的原因。 –
或者更简单 - 你确定该文件确实存在(和你没有在路径/名称的任何错字)? – Mureinik
@Mureinik是啊,它的正确 – NTI