实用例子:判断两个File实例是否指向同一个文件

作者在 2011-12-07 17:18:07 发布以下内容

        一个文件路径可能包含不必要的前缀,如 "."  (表示当前目录)或者 ".." (表示当前目录的父目录),类File中的 getCanonicalFile()可以把文件路径规范为一个统一的形式以作比较。

  假设当前工作目录在'c:\arron\',比较两个File实例是否指向同一个文件的代码如下 :

File file1 = new File("./filename");
File file2 = new File("filename");

// 两个文件路径名不相等
boolean b = file1.equals(file2);      // false

// 获得文件路径的规范形式
try {
    file1 = file1.getCanonicalFile(); // c:\arron\filename
    file2 = file2.getCanonicalFile(); // c:\arron\filename
} catch (IOException e) {
}

// 现在比较时文件路径就相同了
b = file1.equals(file2);              // true
 

那么用File.getAbsoluteFile()作比较行不行@_@?

P.S: 有时候我们需要把File对象转换成URL对象,可是File.toURL()已经被标记为过时的方法了,咋办?
用这个就行了:File.toURI().toURL().这一种转换更健壮,因为File.toURL()不会转换非法字符。
JavaSe | 阅读 2158 次
文章评论,共0条
游客请输入验证码
浏览68489次
最新评论