【问题标题】:File won't remove文件不会删除
【发布时间】:2012-11-02 10:27:31
【问题描述】:

我试图在 java 中删除一个文件,但它不会删除。有人可以解释为什么它不会删除吗?

这是我正在使用的代码:

File bellFile = new File("config\\normbells.txt");

bellFile.delete();

File bellFileNew = new File("config\\normbells.txt");

bellFileNew.createNewFile();

System.out.println("Done!");

注意:如果有帮助,我正在尝试擦除文件。

【问题讨论】:

  • 您会收到什么错误消息(如果有)?你确定代码正在运行吗?
  • 好吧,因为你又在创建同一个该死的文件:)
  • @chaitanya10 这是它应该做的,它只是不先擦除文件。
  • @MarkByers 代码正在运行,因为它输出我在其中的消息。没有错误消息。
  • @cheese5505:我猜你在找错目录。这是一个非常常见的错误——你不是第一个这样做的,你肯定不会是最后一个。

标签: java file delete-file erase


【解决方案1】:

在以下情况下,文件删除可能会失败:

  1. 文件不存在。
  2. 文件是目录而不是文件。
  3. 您无权删除该文件。
  4. 您无权访问该文件或其任何父目录。
  5. 其他应用程序当前正在使用该文件。

尽量避免上述所有情况,您肯定能够删除该文件。 同样在删除文件之前添加此条件:

if (file.exists()) {
    file.delete();
}

【讨论】:

  • 该文件确实存在,该文件不是目录,它在可以编辑的目录中,可能是这个原因,我会尝试,它只被我的java程序使用。跨度>
  • 还要确保在您尝试删除时它没有打开。
【解决方案2】:

Java7 为此提供了新功能。

Path target = Paths.get("D:\\Backup\\MyStuff.txt");
Files.delete(target);

Path newtarget = Paths.get("D:\\Backup\\MyStuff.txt");
Set<PosixFilePermission> perms
    = PosixFilePermissions.fromString("rw-rw-rw-");
FileAttribute<Set<PosixFilePermission>> attr
    = PosixFilePermissions.asFileAttribute(perms);
Files.createFile(newtarget, attr);

看看File类http://docs.oracle.com/javase/7/docs/api/java/io/File.html

【讨论】:

  • 我修复了文件使用中的错误,但现在我收到一条错误消息:'posix:permissions' not supported as initial attribute
【解决方案3】:
File bellFile = new File("config\\normbells.txt");
if(bellFile.delete())
{
System.out.println("Done!");
}

【讨论】:

  • 我想重新创建它,所以它会擦除文件。
  • 您是否要擦除文件中的数据,而不是删除一个?
  • 是的。我想擦除文件。
猜你喜欢
  • 2014-06-07
  • 2010-12-01
  • 2021-12-01
  • 2012-08-06
  • 1970-01-01
  • 1970-01-01
  • 2016-06-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多