-4

File.exists() 是否通过比较路径、名称或文件内容来确定文件是否与另一个文件相同?

4

3 回答 3

2

源代码

   public boolean exists() {
             SecurityManager security = System.getSecurityManager();
             if (security != null) {
                 security.checkRead(path);
             }
             return ((fs.getBooleanAttributes(this) & FileSystem.BA_EXISTS) != 0);
         }

如果您仔细观察,它所做的就是通过调用文件系统检查权限fs,当然还有existing位:)

于 2013-07-29T14:53:41.280 回答
0

File.exists()决定文件是否物理存在。
根据文档

公共布尔存在()
测试此抽象路径名表示的文件或目录是否存在。

如果您想通过路径知道两个文件是否相同。您应该使用类
equals()的方法。File根据文档

公共布尔等于(对象 obj)

测试此抽象路径名是否与给定对象相等。  
当且仅当参数不为空且为抽象时返回 true
表示与此抽象路径名相同的文件或目录的路径名。
于 2013-07-29T14:58:15.677 回答
0

从源代码

测试此抽象路径名表示的文件或目录是否存在。

回报:

当且仅当此抽象路径名表示的文件或目录存在时才为真;否则为假

   public boolean More ...exists() {
746         SecurityManager security = System.getSecurityManager();
747         if (security != null) {
748             security.checkRead(path);
749         }
750         return ((fs.getBooleanAttributes(this) & FileSystem.BA_EXISTS) != 0);
751     }
于 2013-07-29T14:54:56.180 回答