java 和 getAbsolutePath() 有中 file的getpath 啥区别
publicstaticvoidtest1(){Filefile1=newFile(".\\test1.txt");Filefile2=newFile("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.txtD:\workspace\test\.\test1.txt-----默认绝对路径:取得路径相同------D:\workspace\test\test1.txtD:\workspace\test\test1.txt因为getPath()得到的是构造file的时候的路径。getAbsolutePath()得到的是全路径如果构造的时候就是全路径那直接返回全路径如果构造的时候试相对路径,返回当前目录的路径+构造file时候的路径
win7系统如何获取文件或文件夹的完整路径
注:1、先点击鼠标左键选中文件————长按shift键————点击鼠标右键——点击 复制为路径(A)
1、打开电脑上的文件夹,选中一个文件,可以看到此文件的完整路径并非用反斜杠字符分隔文件夹名来显示完整的文件或文件夹路径。
2、接下来请点击地址栏空白处
3、点击地址栏空白处后,此时在地址栏就显示了完整的文件路径,如下图所示
4、选中显示出来的完整文件路径,鼠标右键,从快捷菜单中选择复制,即可把此文件的路径完整复制下来了。
5、还有一个方法:按shift键不放,再右击文件从弹出的快捷菜单中选择“复制为路径”,也能拷贝一个文件的完整路径,如下图所示。"E:\电脑资料\备份\数据库语言\K3如何在数据库更改计量单位.doc"
6、在需要的地方比如在运行中粘贴一下,即可显示出来此文件的完整路径。
7、点击“确定”按钮后,就可以直接打开此WORD文档
java 中 file.getpath getabsolutepath和getcanonicalpath的不同
一、概念上的不同
?
1
2
3
4
5
getPath
public String getPath()
将此抽象路径名转换为一个路径名字符串。所得字符串使用默认名称分隔符分隔名称序列中的名称。
返回:
此抽象路径名的字符串形式
---------------------------------------------------------
?
1
2
3
4
5
6
7
8
9
10
getAbsolutePath
public String getAbsolutePath()
返回此抽象路径名的绝对路径名字符串。
如果此抽象路径名已经是绝对路径名,则返回该路径名字符串,这与 getPath() 方法一样。如果此抽象路径名是空抽象路径名,则返回当前用户目录的路径名字符串,该目录由系统属性 user.dir 指定。否则,使用与系统有关的方式解析此路径名。在 UNIX 系统上,根据当前用户目录解析相对路径名,可使该路径名成为绝对路径名。在 Microsoft Windows 系统上,根据路径名指定的当前驱动器目录(如果有)解析相对路径名,可使该路径名成为绝对路径名;否则,可以根据当前用户目录解析它。
返回:
绝对路径名字符串,它与此抽象路径名表示相同的文件或目录
抛出:
SecurityException - 如果无法访问所需的系统属性值。
另请参见:
isAbsolute()
---------------------------------------------------------
?
1
2
3
4
5
6
7
8
9
10
11
12
13
getCanonicalPath
public String getCanonicalPath()
throws IOException
返回此抽象路径名的规范路径名字符串。
规范路径名是绝对路径名,并且是惟一的。规范路径名的准确定义与系统有关。如有必要,此方法首先将路径名转换为绝对路径名,这与调用 getAbsolutePath() 方法的效果一样,然后用与系统相关的方式将它映射到其惟一路径名。这通常涉及到从路径名中移除多余的名称(比如 "." 和 "..")、解析符号连接(对于 UNIX 平台),以及将驱动器号转换为标准大小写形式(对于 Microsoft Windows 平台)。
每个表示现存文件或目录的路径名都有一个惟一的规范形式。每个表示不存在文件或目录的路径名也有一个惟一的规范形式。不存在文件或目录路径名的规范形式可能不同于创建文件或目录之后同一路径名的规范形式。同样,现存文件或目录路径名的规范形式可能不同于删除文件或目录之后同一路径名的规范形式。
返回:
规范路径名字符串,它与此抽象路径名表示相同的文件或目录
抛出:
IOException - 如果发生 I/O 错误(可能是因为构造规范路径名需要进行文件系统查询)
SecurityException - 如果无法访问所需的系统属性值,或者存在安全管理器,且其SecurityManager.checkRead(java.io.FileDescriptor) 方法拒绝对文件进行读访问
从以下版本开始:
JDK1.1
二、实例解析
1.getPath()与getAbsolutePath()的区别
?
1
2
3
4
5
6
7
8
9
10
public void diff_pathAndAbsolutePath(){
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());
}
得到的结果:
?
1
2
3
4
5
6
-----默认相对路径:取得路径不同------
.\test1.txt
D:\workspace\test\.\test1.txt
-----默认绝对路径:取得路径相同------
D:\workspace\test\test1.txt
D:\workspace\test\test1.txt
结论:
getPath得到的是构造参数的路径。
getAbsolutePath得到的是全路径。如果构造参数是相对路径,则返回当前目录的绝对路径+构造参数路径;如果是绝对路径则直接返回。