首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Java在Windows上隐藏文件/文件夹

问用Java在Windows上隐藏文件/文件夹
EN

Stack Overflow用户
提问于 2009-08-18 16:25:35
回答 7查看 46.4K关注 0票数 28

我需要在Windows和Linux上隐藏文件和文件夹。我知道加一个'.‘放在文件或文件夹的前面将使其在Linux上隐藏。如何在Windows上隐藏文件或文件夹?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2009-08-18 16:29:58

对于Java 6及更低版本,

您将需要使用本机调用,下面是windows的一种方法。

代码语言:javascript
复制
Runtime.getRuntime().exec("attrib +H myHiddenFile.java");

您应该了解一些关于win32-api或Java Native的知识。

票数 23
EN

Stack Overflow用户

发布于 2009-08-18 19:15:31

您想要的功能是即将发布的Java7中的NIO.2的一个特性。

这里有一篇文章描述了它将如何用于你所需要的东西:Managing Metadata (File and File Store Attributes)。下面是一个使用DOS File Attributes的示例

代码语言:javascript
复制
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设置属性

考虑到这些事实,我怀疑在Java6或Java5中是否有一种标准而优雅的方法来实现这一点。

票数 24
EN

Stack Overflow用户

发布于 2010-06-13 00:04:24

Java 7可以通过以下方式隐藏DOS文件:

代码语言:javascript
复制
Path path = Paths.get("...");
Files.setAttribute(path, "dos:hidden", Boolean.TRUE, LinkOption.NOFOLLOW_LINKS);

较早的Java版本没有提供此功能的API。

上面的代码不会在非DOS文件系统上抛出异常。如果文件名以句点开头,则它在UNIX文件系统上将是隐藏的。

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1294989

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档