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
相关用法
- Java getCanonicalPath()和getAbsolutePath()的区别用法及代码示例
- Java File getCanonicalPath()用法及代码示例
- Java getPath()和getAbsolutePath()的区别用法及代码示例
- Java getPath()和getCononicalPath()的区别用法及代码示例
- Java URL getPath()用法及代码示例
- Java URI getPath()用法及代码示例
- Java File getPath()用法及代码示例
- Java super()和this()的区别用法及代码示例
- Java Stream.of()和Arrays.stream()的区别用法及代码示例
注:本文由纯净天空筛选整理自meetsuvariya大神的英文原创作品 Difference Between getPath() and getCanonicalPath() in Java。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。