📜  如何使用Java查找和打开目录中的隐藏文件

📅  最后修改于: 2022-05-13 01:55:08.600000             🧑  作者: Mango

如何使用Java查找和打开目录中的隐藏文件

先决条件: Java文件处理

到目前为止,使用Java程序的操作是在一个提示/终端上完成的,它没有存储在任何地方。但是在软件行业,大多数程序都是为了存储从程序中获取的信息而编写的。一种这样的方法是将获取的信息存储在文件中。

在本文中,我们将看到如何使用Java打开给定路径中的所有隐藏文件

什么是文件处理?
文件是一个容器,用于存储各种类型的信息。通过创建具有唯一名称的文件,数据将永久存储在辅助存储器中。文件可能由文本、图像或任何其他文档组成。

可以对文件执行的不同操作:可以对文件执行各种操作。他们是:

  1. 创建一个新文件。
  2. 打开现有文件。
  3. 从文件中读取。
  4. 写入文件。
  5. 移动到文件中的特定位置。
  6. 关闭文件。

方法:上述所有操作都可以对通过目录浏览时可见的文件进行。但是,可能存在目录中存在的文件被隐藏并且数据安全地存储在隐藏文件中的情况。但是,隐藏的文件也可以使用Java访问。 Java的IO包包含一个特殊的方法isHidden() ,它的返回类型是一个布尔值,如果文件被隐藏则返回true,如果文件不隐藏则返回false。除此之外, Java AWT 包包含 Desktop 类,它具有打开、编辑、浏览文件夹所需的所有方法。因此,打开隐藏文件的思路是使用 isHidden() 方法检查文件是否隐藏,然后使用 open() 方法打开这些隐藏文件。

下面是上述方法的实现:

// Java program to find and open
// all the hidden files in a
// directory
import java.awt.Desktop;
import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.Scanner;
  
public class GFG {
  
    // Function to find and open
    // all the hidden files in a
    // directory
    public static void open(String path)
        throws IOException
    {
        // Creating the file object
        // for the path
        File file = new File(path);
  
        // List all the files in
        // the given path
        String[] ls = file.list();
  
        // Creating a file object
        // to access the files in
        // the given path
        File f;
  
        // Iterating through all the files
        for (int i = 0; i < ls.length; i++) {
  
            // Finding the path of the
            // file
            String npath = path + "/" + ls[i];
  
            // Accessing the file
            f = new File(npath);
  
            // Check whether there is any
            // hidden file
            if (f.isHidden()) {
  
                // Printing the hidden file
                System.out.println(
                    ls[i]
                    + "[" + npath + "]");
  
                // Open the hidden file using
                // the Desktop class
                Desktop d = Desktop.getDesktop();
                d.open(f);
  
                System.out.println(
                    ls[i] + " opened");
            }
        }
    }
  
    // Driver code
    public static void main(String[] args)
        throws IOException
    {
  
        String path = "D:";
  
        open(path);
    }
}

注意:以上代码不能在在线 IDE 上运行。

输出:这里,一个包含一些数据的文本文件被隐藏在“D:”目录中。上述程序的工作原理如下: