【问题标题】:How to delete a hidden file in Java? [closed]如何删除Java中的隐藏文件? [关闭]
【发布时间】:2017-01-12 10:35:43
【问题描述】:
File[] hiddenFiles = directory.listFiles((FileFilter) HiddenFileFilter.HIDDEN);
for (File hiddenFile : hiddenFiles) {
  String hidden = hiddenFile.getCanonicalPath();
  File file = new File(hidden);
  file.deleteOnExit();
}

我试过用这个来删除隐藏文件,但是这个不起作用。有没有其他解决办法?

【问题讨论】:

  • 究竟是什么不工作?程序没有找到隐藏文件还是不能删除所述文件?如果我不得不猜测,我会说你需要将 new File("hiddenfile"); 更改为 new File(hidden);
  • @Guru 你想删除hiddenFiles吗?该代码远未实现这一目标。
  • 是的,我改变了。但还是不行。
  • @CaptainTreibholz 我实际上尝试将路径设为静态。上传时我删除了路径。这造成了混乱。 new File("path\to\hiddenfile");这是我真正想问的。

标签: java file hidden-files


【解决方案1】:

删除隐藏文件和普通文件没有区别。 它应该一切正常,但在您的情况下,您正在尝试删除名为“hiddenFile”的文件。我建议你删除引号。

File[] hiddenFiles = directory.listFiles((FileFilter) HiddenFileFilter.HIDDEN);
for (File hiddenFile : hiddenFiles) {
    hidenFile.delete();
    }
}

【讨论】:

  • 我已经试过了。我无法删除那个。当我尝试打印结果时。结果是假的。 System.out.println( hiddenFile.delete()); = 假
  • 问题肯定出在其他地方;也许您没有删除它的权限。我建议你做一个快速测试;更改您的代码以使用 NIO2/Files 而不是 java.io.File:try { java.nio.file.Files.delete(hiddenFile.toPath()); } catch (IOException e) { e.printStackTrace(); } 它应该允许您打印您遇到的错误。一般来说,Oracle 建议使用 NIO2(文件)而不是文件来进行此类操作。希望这可以帮助。更多关于 NIO2 和删除的信息在这里:docs.oracle.com/javase/tutorial/essential/io/delete.html
  • java.nio.file.DirectoryNotEmptyException: sun.nio.fs.UnixFileSystemProvider.implDelete(UnixFileSystemProvider.java:242) 的路径/到/文件在 sun.nio.fs.AbstractFileSystemProvider.delete(AbstractFileSystemProvider .java:103) 在 java.nio.file.Files.delete(Files.java:1079) 在 scrm.hidden.main(hidden.java:17) T
  • 看起来你在文件中你有一个非空的隐藏目录并且你试图删除它。您可以使用 .isDirectory() 过滤掉目录。或者编写一个递归删除它的内容的算法。有很多在线示例如何做到这一点。
【解决方案2】:

您应该使用路径来访问文件。不要使用File file = new File("hiddenfile");,而是使用File file = new File(hidden);,因为那是你文件的目录路径。

【讨论】:

  • 是的,我改变了。但还是不行。
猜你喜欢
  • 2021-10-30
  • 1970-01-01
  • 2012-12-13
  • 1970-01-01
  • 2013-11-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-28
相关资源
最近更新 更多