📜  Java中的文件 getCanonicalPath() 方法和示例

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

Java中的文件 getCanonicalPath() 方法和示例

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

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

函数签名:

public String getCanonicalPath()

函数语法:

file.getCanonicalPath()

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

返回值:如果给定文件对象的规范路径,该函数返回一个字符串值。

异常:此方法抛出以下异常:

  • 如果无法访问所需的属性值,则会出现安全异常
  • 如果发生I/O 异常,则 I/O Exception

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

    示例 1:我们有一个具有指定路径的 File 对象,我们将尝试找到它的规范路径。

    // Java program to demonstrate the
    // use of getCanonicalPath() 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:\\program");
      
                // Get the Canonical path of file f
                String canonical = f.getCanonicalPath();
      
                // 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);
            }
            catch (Exception e) {
                System.err.println(e.getMessage());
            }
        }
    }
    

    输出

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

    示例 2:我们有一个具有指定路径的 File 对象,我们将尝试找到它的规范路径。

    // Java program to demonstrate the
    // use of getCanonicalPath() 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 path of file f
                String canonical = f.getCanonicalPath();
      
                // 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);
            }
            catch (Exception e) {
                System.err.println(e.getMessage());
            }
        }
    }
    

    输出

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

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