【问题标题】:How to make a folder hidden using java如何使用java隐藏文件夹
【发布时间】:2010-01-04 13:08:46
【问题描述】:

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

我尝试过使用

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

它会创建一个不隐藏的目录。

【问题讨论】:

标签: java io


【解决方案1】:

如果您使用的是 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 的更多信息。

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

    • 虽然这可行,但我建议您在使用运行时破解之前使用下面提到的 Pal 的 Java 7 方法(并在执行运行时破解之前检查以确保它是 Windows)
    【解决方案3】:

    在 *nix 下,您只需重命名文件,以便

    filename = ".".filename;
    

    【讨论】:

      【解决方案4】:

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

      要使文件在 Windows 下隐藏,您需要在其属性中设置“隐藏”位。 Java 标准库不提供此功能(尽管有一个 file.isHidden() 方法),而且我不知道有什么工具可以提供。

      【讨论】:

        【解决方案5】:

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

        【讨论】:

          【解决方案6】:

          那是操作系统的工作(当然你是操作系统的老板)。但是您可以执行 attrib (Windows) 命令并告诉 OS(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();
                    }
          
              }
          }
          

          【讨论】:

          • 必须等待进程退出才能获取其退出代码。应该使用proc.waitFor() 而不是proc.exitValue(),因为后者会导致IllegalThreadStateException: process has not exited
          【解决方案7】:

          尝试以下步骤:

           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
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2014-07-23
            • 2010-11-25
            • 2015-09-30
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2020-07-05
            相关资源
            最近更新 更多