java - 通过java取消隐藏文本文件

标签 java

我尝试隐藏和取消隐藏文本文件。我只能隐藏,但当我尝试取消隐藏时,我收到一条错误消息。

        try {
            //Hide file;
            Process process = Runtime.getRuntime().exec("cmd.exe /c attrib +h test.txt");
            //wait for process to get over (i.e. for file hiding)
            process.waitFor();
        } catch (Exception e) {
            e.getMessage();
        }

        //Now, let's test whether file has been hidden or not
        boolean fileHidden = fileToBeHidden.isHidden();

        if (fileHidden) {
            System.out.println(fileName + " is hidden ");
        } else {
            System.out.println(fileName + " isn't hidden ");
        }

此方法正确隐藏文件,但我无法再次取消隐藏它

最佳答案

尝试此方法来隐藏和取消隐藏文件。

import java.io.File;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class Test {

    public static void main(String[] args) {
        Test.fileProcess("test.txt", true);
        Test.fileProcess("test.txt", false);
    }

    public static void fileProcess(String fileName, boolean hide) {
        try {

            // you can change your full
            String filePath = System.getProperty("user.dir")
                    + File.separator
                    + "files"
                    + File.separator + fileName;

            File f = new File(filePath);
            if(!f.exists() && !f.isDirectory()) {
                System.out.println(fileName + " file is not exist ");
                return;
            }

            Path file = Paths.get(filePath);
            Files.setAttribute(file, "dos:hidden", hide);

            f = new File(filePath);

            boolean fileHidden = f.isHidden();
            if (fileHidden) {
                System.out.println(fileName + " is hidden ");
            } else {
                System.out.println(fileName + " isn't hidden ");
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

输出如下:

test.txt is hidden 
test.txt isn't hidden 

关于java - 通过java取消隐藏文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62112966/

相关文章:

java swing 和 sqlite

java - 在 TextView 中的两个可绘制对象之间绘制线条

java - spring-data-elasticsearch 3.1.9 的 elasticsearch-server 版本

java - 用户连接的全局架构存在

java - 工具栏上的向上按钮存在但不工作 MVC 架构应用程序棘手的实现

java - Java数组的最大限制

java - Maven + AspectJ - 配置它的所有步骤

java - 在哪些领域使用 OSGI 有意义?

java - 静态类与单例的模糊情况

java - 使用 mockito 模拟链式方法调用?