在我的单元测试中,我编写了以下代码:
assertTrue(Files.isHidden(path));
测试在该行失败。
在 Windows 文件资源管理器中,我检查了该文件是否存在并且被隐藏。在尝试了以下替代方案后,我正在寻找解释。
path.toFile().isHidden(); // returns true
Files.getAttribute(path, "dos:hidden", LinkOption.NOFOLLOW_LINKS); // returns true
Files.isHidden(path); // returns false
运行 Windows 和 Oracle JDK v1.8.0-ea。
想法,有人吗?
更新:
我不知道发生了什么,但是现在使用 3 行中的任何一行都可以成功测试,包括Files.isHidden(path);
!它可能是 IDE 或其他东西..(Windows 8 64 位上的 IntelliJ 12.1.4 CE)。
我仍然对这些方法之间的区别感兴趣,特别是其中一种可能比另一种更好。