如何在Java中显示文件

时间:2014-12-21 20:41:01

标签: java eclipse file visible invisible

我有这个代码使外部文件不可见:

    void hide(File src) throws InterruptedException, IOException {


        // win32 command line variant
        Process p = Runtime.getRuntime().exec("attrib +h " + src.getPath());
        p.waitFor();

现在我不知道如何让文件可见(用户提供文件的路径)..

3 个答案:

答案 0 :(得分:0)

应该与您拥有的代码几乎100%相同。而不是+h它应该是-hHere您可以找到有关attrib命令的更多信息。语法是

ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] [[drive:][path]filename] [/S]
+ Sets an attribute.
- Clears an attribute.
R Read-only file attribute.
A Archive file attribute.
S System file attribute.
H Hidden file attribute.
/S Processes files in all directories in the specified path.

答案 1 :(得分:0)

exec("attrib +h " + src.getPath()替换为exec("attrib -h " + src.getPath())
这将使属性从隐藏变为可见。

+r : Used to set the file attribute as read-only.

-r : Used to clear the read-only file attribute.

+a : Used to set the file attribute as archive.

-a : Used to clear the archive file attribute.

+s : Used to set the file attribute as a system file.

-s : Used to clear the system file attribute.

+h : Used to make the file attribute as hidden not visible to the user.

-h : Used to clear the hidden file attribute.

答案 2 :(得分:0)

这是一种古老的方法。您应该使用java.nio.file.Files.setFileAttribute(),除非您使用的是早于7的Java版本。

Javadoc提供了将dos:hidden设置为true的示例。当然,相反的是将其设置为false(更恰当地说,Boolean.FALSE)。

这样你就不会创建另一个进程,这是一个相对昂贵的操作。

当然,请注意各种经过检查的例外情况。