📜  Java中的 File getCanonicalFile() 方法及示例

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

Java中的 File getCanonicalFile() 方法及示例

getCanonicalFile()方法是 File 类的一部分。这个函数返回给定文件对象的规范文件。如果文件对象的文件路径是规范的,那么它只返回当前文件对象的文件。
规范文件始终是绝对且唯一的,该函数删除了“。” '..' 来自文件的路径(如果存在)。

例如:如果我们使用路径作为“program.txt”创建一个文件对象,它指向保存可执行程序的同一目录中的文件(如果您使用的是 IDE,它将指向您所在的文件)已保存程序)。这里上面提到的文件的路径是“program.txt”,但是这个路径不是绝对的(即不完整的)。函数getCanonicalFile() 将返回一个文件,其路径将是根目录的绝对且唯一路径。现有文件的规范形式可能与同一不存在文件的规范形式不同,并且现有文件的规范形式在删除时可能与同一文件的规范形式不同。
函数签名:

public File getCanonicalFile()

函数语法:

file.getCanonicalFile()

参数:此函数不接受任何参数。

返回值:此函数返回 File 对象,即给定 File 对象的规范文件。

异常此方法抛出以下异常

  • 安全异常:如果无法访问所需的属性值。
  • I/O Exception:如果发生 I/O 异常。

下面的程序将说明 getCanonicalFile() 方法的使用:

示例 1:这里的“program.txt”是当前工作目录中存在的文件

// Java program to demonstrate the
// use of getCanonicalFile() function
  
import java.io.*;
  
public class solution {
    public static void main(String args[])
    {
  
        // try-catch block to handle exceptions
        try {
  
            // Create a file object
            File f = new File("program.txt");
  
            // Get the Canonical file
            // of the given file f
            File canonical = f.getCanonicalFile();
  
            // Display the file path of the file object
            // and also the file path of Canonical file
            System.out.println("Original file path: "
                               + f.getPath());
            System.out.println("Canonical file path: "
                               + canonical.getPath());
        }
        catch (Exception e) {
            System.err.println(e.getMessage());
        }
    }
}

输出:

Original file path: program.txt
Canonical file path: C:\Users\pc\eclipse-workspace1\arnab\program.txt

示例 2:我们得到一个 File 对象,我们必须从该文件对象创建规范文件。

// Java program to demonstrate the
// use of getCanonicalFile() function
  
import java.io.*;
  
public class solution {
    public static void main(String args[])
    {
  
        // try-catch block to handle exceptions
        try {
  
            // Create a file object
            File f
                = new File("c:\\users\\..\\program");
  
            // Get the Canonical file
            // of the given file f
            File canonical = f.getCanonicalFile();
  
            // Display the file path of the file object
            // and also the file path of Canonical file
            System.out.println("Original file path: "
                               + f.getPath());
            System.out.println("Canonical file path: "
                               + canonical.getPath());
        }
        catch (Exception e) {
            System.err.println(e.getMessage());
        }
    }
}

输出:

Original file path: c:\users\..\program
Canonical file path: C:\program

这些程序可能无法在在线 IDE 中运行。请使用离线IDE并设置文件路径