gpt4 book ai didi

java - 如何设置文件的隐藏属性

转载 作者:可可西里 更新时间:2023-11-01 12:05:04 26 4
gpt4 key购买 nike

我正在尝试创建一个让我隐藏文件的静态方法。我找到了一些可能的方法来做到这一点,我写了这个:

public static void hide(File src) throws InterruptedException, IOException {

if(System.getProperty("os.name").contains("Windows"))
{
Process p = Runtime.getRuntime().exec("attrib +h " + src.getPath());
p.waitFor();
}
else
{
src.renameTo(new File(src.getParent()+File.separator+"."+src.getName()));
}
}

不幸的是,这在 Windows 和 Ubuntu 上都不起作用......在 Oracle 的教程中我找到了这种方式

Path file = ...;

Files.setAttribute(file, "dos:hidden", true);

但我不知道如何使用它,因为我的 JDK 没有“路径”类。任何人都可以帮助我提供一种可以在 unix 操作系统和 Windows 上运行的方法吗?

最佳答案

Path 类是在 Java 7 中引入的。

在 Java 7 之前,没有内置的方法来访问这样的属性,所以你必须做一些类似于你正在尝试的事情(在 Unix-y 操作系统上没有“隐藏属性”,但是所有以 . 开头的文件都默认隐藏)。

关于您的 exec() 调用有 a great (if a bit old) article它列出了所有可能出错的地方以及如何修复它(不幸的是,这是一个相当复杂的过程)。

还有一个小提示:new File(src.getParent()+File.separator+"."+src.getName()) 可以替换为 new File(src.getParent(), "." + src.getName()) ,这样会更干净一些。

关于java - 如何设置文件的隐藏属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5789233/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com