当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Java getPath()和getCanonicalPath()的区别用法及代码示例


Java File getPath()用法及代码示例方法是File类的一部分。此函数返回给定文件对象的路径。该函数返回一个字符串对象,其中包含给定文件对象的路径,而getCanonicalPath()方法是Path类的一部分。此函数返回给定文件对象的规范路径名。如果文件对象的路径名是Canonical,则它仅返回当前文件对象的路径。规范路径始终是绝对且唯一的,如果存在,该函数将从路径中删除“。”。现在,方法getPath()和getCanonicalPath()都属于File类,并且都是获取文件系统路径的File方法。首先,我们从以下文件结构了解两条路径之间的区别。

图解:考虑windows目录下随机路径

|--D:
   \--Article      
   \--Test
   \--Program
       \--Python
       \--JAVA
           \Program1.java

如果通过了路径“Python/../JAVA/Program1.java”,则Path和规范路径的值如下所示。

  • Path:Python \ .. \ JAVA \ Program1.java
  • 规范路径:d:\ Program \ JAVA \ Program1.java

现在让我们了解两种方法之间的区别

(A)理论差异



getPath()方法getCanonicalPath()方法
此函数以字符串形式返回抽象路径名。此函数返回给定文件对象的规范路径名。
返回的路径名可能是绝对路径。规范路径始终是绝对且唯一的路径。
如果使用String路径名创建文件对象,则仅返回路径名。如果需要,此方法首先将此路径名转换为绝对形式。为此,它将调用getAbsolutePath()方法,然后将其映射到其唯一形式。
如果在文件对象的参数中使用了URL,则它将删除协议并返回文件名此方法删除了多余的名称,例如 ” 。 “ 和 “.. ” 来自路径名。它将解析符号链接并将驱动器号转换为标准大小写。
此方法不会引发任何异常。

此方法引发以下异常。

安全异常 :如果无法访问所需的属性值。

I /O异常:如果发生I /O异常。

例:

文件f =新文件(“ c:\\ users \\ .. \\ program \\。\\ file1.txt”)

路径:-c:\ users \ .. \ program \。\ file1.txt

例:

文件f =新文件(“ c:\\ users \\ .. \\ program \\。\\ file1.txt”)

规范路径:-c:\ program \ file1.txt

实施:(B)实际差异

示例

Java


// Java program to demonstrate the difference
// between getPath() and  getCanonicalPath() function
// Importing input output classes
import java.io.*;
// Class
public class GFG {
    // Main driver method
    public static void main(String args[])
    {
        // Try block to check exceptions
        try {
            // Creating a file object
            File f = new File(
                "g:\\gfg\\A(7)PATH\\Test\\..\\file1.txt");
            // Getting the Path of file object
            String path = f.getPath();
            // Getting the Canonical path of the file object
            String canonical = f.getCanonicalPath();
            // Display the file path of the file object
            // and also the Canonical path of file
            System.out.println("Path:" + path);
            System.out.println("Canonical path:"
                               + canonical);
        }
        // Catch block to handle if exception/s occurs
        catch (Exception e) {
            // Exception message is printed where occurred
            System.err.println(e.getMessage());
        }
    }
}

输出:

Path (getPath()):g:\gfg\A(7)PATH\Test\..\file1.txt
path (getCanonicalPath()):G:\gfg\A(7)PATH\file1.txt




相关用法


注:本文由纯净天空筛选整理自meetsuvariya大神的英文原创作品 Difference Between getPath() and getCanonicalPath() in Java。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。