使用Java在Windows上隐藏文件/文件夹

2022-09-01 13:46:25

我需要在Windows和Linux上隐藏文件和文件夹。我知道在文件或文件夹的前面附加一个“.”会使它在Linux上隐藏。如何在 Windows 上隐藏文件或文件夹?


答案 1

你想要的功能是即将推出的Java 7中NIO.2的一个特性。

下面是一篇描述如何将其用于所需内容的文章:管理元数据(文件和文件存储属性)。有一个 DOS 文件属性的示例

Path file = ...;
try {
    DosFileAttributes attr = Attributes.readDosFileAttributes(file);
    System.out.println("isReadOnly is " + attr.isReadOnly());
    System.out.println("isHidden is " + attr.isHidden());
    System.out.println("isArchive is " + attr.isArchive());
    System.out.println("isSystem is " + attr.isSystem());
} catch (IOException x) {
    System.err.println("DOS file attributes not supported:" + x);
}

可以使用 DosFileAttributeView 设置属性

考虑到这些事实,我怀疑在Java 6或Java 5中是否有标准而优雅的方法来实现这一目标。


答案 2

对于 Java 6 及更低版本,

您将需要使用本机调用,这是Windows的一种方法

Runtime.getRuntime().exec("attrib +H myHiddenFile.java");

你应该学习一些关于win32-api或Java Native的知识。