如何使用java隐藏文件夹

时间:2010-01-04 13:08:46

标签: java io

我想使用java应用程序创建一个隐藏文件夹。该计划应该跨平台工作。那么如何编写一个可以创建隐藏文件夹的程序。

我尝试过使用

File newFile = new File("myfile");
newFile.mkdir();

它创建一个未隐藏的目录。

7 个答案:

答案 0 :(得分:30)

如果您使用的是Java 7,则可以使用新的java.nio.file.attribute包,如下所示:

Path path = FileSystems.getDefault().getPath("/j", "sa");
Files.setAttribute(path, "dos:hidden", true);

http://download.oracle.com/javase/tutorial/essential/io/fileAttr.html

查看更多信息

或者,如果您使用的是旧版本的Java和/或想要使用Runtime进行此操作,请尝试以下操作:

Process process = Runtime.getRuntime().exec("cmd.exe /C attrib -s -h -r your_path"); 

查看有关cmdattrib的更多信息。

答案 1 :(得分:15)

隐藏文件/文件夹的概念非常特定于操作系统,无法通过Java API访问。

在Linux中,名称以点开头的文件和文件夹在许多程序中默认隐藏 - 这样做很容易。

在Windows中,“隐藏”是存储在文件系统中的特殊标志。没有用于更改它的Java API;您可以使用Runtime.exec()运行attrib命令。

答案 2 :(得分:7)

在* nix下,您只需将文件重命名为

filename = ".".filename;

答案 3 :(得分:5)

要在Unix下隐藏文件或目录,其名称需要以句点(.)开头。

要在Windows下隐藏文件,您需要在其属性中设置“隐藏”位。 Java标准库不提供此功能(尽管有file.isHidden()方法),并且我不会随便知道任何工具。

答案 4 :(得分:3)

您可以使用某种形式的工厂模式来满足您的跨平台需求。但其他人都说。我担心你不能用一行代码完成它,因为我只能觉得你想要它。我的哀悼。

答案 5 :(得分:3)

那是OS工作(当然你是OS老板)。但您可以执行attrib(Windows)命令并告诉操作系统(Windows)您要将文件夹设置为“隐藏”。

public class Main {

    public static void main(String[] args) {
        try
        {            
            Runtime rt = Runtime.getRuntime();
            //put your directory path instead of your_directory_path
            Process proc = rt.exec("attrib -s -h -r your_directory_path"); 
            int exitVal = proc.exitValue();
        } catch (Throwable t)
          {
            t.printStackTrace();
          }

    }
}

答案 6 :(得分:0)

请尝试以下步骤:

 1. make a folder with extension **.jad** and move your videos,photos, etc
    on that folder..
 2. now create same folder with extenson **.jar** (ex- if u create
    videos.jad then create videos.jar)
 3. finished .. Videos.jad will hide .. Delete the .jar  .jad will come
    again