博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
File类三种得到路径的方法
阅读量:4134 次
发布时间:2019-05-25

本文共 2213 字,大约阅读时间需要 7 分钟。

getPath public String getPath()将此抽象路径名转换为一个路径名字符串。所得到的字符串使用默认名称分隔符来分隔名称序列中的名称。 返回: 此抽象路径名的字符串形式

 

getAbsolutePath
public
String getAbsolutePath()返回抽象路径名的绝对路径名字符串。
如果此抽象路径名已经是绝对路径名,则返回该路径名字符串,这与 getPath() 方法一样。如果此抽象路径名是空的抽象路径名,则返回当前用户目录的路径名字符串,该目录由系统属性 user.dir 指定。否则,使用与系统有关的方式分析此路径名。在 UNIX 系统上,通过根据当前用户目录分析某一相对路径名,可使该路径名成为绝对路径名。在 Microsoft Windows 系统上,通过由路径名指定的当前驱动器目录(如果有)来分析某一相对路径名,可使该路径名成为绝对路径名;否则,可以根据当前用户目录来分析它。


返回:
绝对路径名字符串,它与此抽象路径名表示相同的文件或目录的
抛出:
SecurityException
-
如果无法访问所需的系统属性值。
另请参见:
isAbsolute()
getCanonicalPath
public
String getCanonicalPath()
                        
throws
IOException返回抽象路径名的规范路径名字符串。
规范路径名是绝对路径名,并且是惟一的。规范路径名的准确定义与系统有关。如有必要,此方法首先将路径名转换成绝对路径名,这与调用 getAbsolutePath() 方法的效果一样,然后用与系统相关的方式将它映射到其惟一路径名。这通常涉及到从路径名中移除多余的名称(比如
"
.
"
"
..
"
)、分析符号连接(对于 UNIX 平台),以及将驱动器名转换成标准大小写形式(对于 Microsoft Windows 平台)。

表示现有文件或目录的每个路径名都有一个惟一的规范形式。表示非存在文件或目录的每个路径名也有一个惟一的规范形式。非存在文件或目录路径名的规范形式可能不同于创建文件或目录之后同一路径名的规范形式。同样,现有文件或目录路径名的规范形式可能不同于删除文件或目录之后同一路径名的规范形式。


返回:
表示与此抽象路径名相同的文件或目录的规范路径名字符串
抛出:
IOException
-
如果发生 I
/
O 错误(可能是因为构造规范路径名需要进行文件系统查询)
SecurityException
-
如果无法访问所需的系统属性值,或者存在安全管理器,且其 SecurityManager.checkRead(java.io.FileDescriptor) 方法拒绝对该文件进行读取访问
从以下版本开始:
JDK1.
1


二、例子:
1,getPath()与getAbsolutePath()的区别

public
static
void
test1()
{

         File file1
= new File( " .//test1.txt " );
         File file2
= new File( " D://workspace//test//test1.txt " );
         System.out.println(
" -----默认相对路径:取得路径不同------ " );
         System.out.println(file1.getPath());
         System.out.println(file1.getAbsolutePath());
         System.out.println(
" -----默认绝对路径:取得路径相同------ " );
         System.out.println(file2.getPath());
         System.out.println(file2.getAbsolutePath());
        
     }


得到的结果:

-----
默认相对路径:取得路径不同
------

./test1.txt
D:/workspace/test/./test1.txt
-----
默认绝对路径:取得路径相同
------

D:/workspace/test/test1.txt
D:/workspace/test/test1.txt

因为getPath()得到的是构造file的时候的路径。
getAbsolutePath()得到的是全路径
如果构造的时候就是全路径那直接返回全路径
如果构造的时候试相对路径,返回当前目录的路径+构造file时候的路径

2,getAbsolutePath()和getCanonicalPath()的不同

public
static
void
test2()
throws
Exception
{

         File file
= new File( " ..//src//test1.txt " );
         System.out.println(file.getAbsolutePath());
         System.out.println(file.getCanonicalPath());
     }

得到的结果

D:/workspace/test/../src/test1.txt
D:/workspace/src/test1.txt

可以看到CanonicalPath不但是全路径,而且把..或者.这样的符号解析出来。

转载地址:http://lhivi.baihongyu.com/

你可能感兴趣的文章
Linux子系统系列-I2C
查看>>
<iOS>关于自定义description的一点用法
查看>>
Unix 命令,常用到的
查看>>
DLL中建立进程共享数据段需要注意的语法问题
查看>>
服务器端技术----Http请求的处理过程
查看>>
C语言-预处理指令2-条件编译
查看>>
C语言-预处理指令3-文件包含
查看>>
C语言-变量类型
查看>>
C语言-static和extern关键字1-对函数的作用
查看>>
C 语言-static和extern关键字2-对变量的作用
查看>>
【JavaScript 教程】浏览器—History 对象
查看>>
还不会正则表达式?看这篇!
查看>>
100道+ JavaScript 面试题,助你查漏补缺
查看>>
JavaScript深入理解之闭包
查看>>
这才是学习Vite2的正确姿势!
查看>>
7 个适用于所有前端开发人员的很棒API,你需要了解一下
查看>>
25个构建Web项目的HTML建议,你需要了解一下!
查看>>
【web素材】02-10款大气的购物商城网站模板
查看>>
6种方式实现JavaScript数组扁平化(flat)方法的总结
查看>>
如何实现a===1 && a===2 && a===3返回true?
查看>>