Почему новый файл ("c: \\ a") не равен новому файлу ("c: \\ a", "\\")? - PullRequest
0 голосов
/ 26 августа 2011

они равны друг другу:

new File("c:\\a")
new File("c:\\a\\")
new File("c:\\a","")
new File("c:\\a\\","")

но new File("c:\\a","\\") не равно им

но new File("c:\\a","\\b") равно new File("c:\\a","b")

почему

Ответы [ 3 ]

2 голосов
/ 26 августа 2011

JavaDocs для java.io.File должно прояснить это.

File(File parent, String child)
          Creates a new File instance from a parent abstract pathname and a child pathname string.
File(String pathname)
          Creates a new File instance by converting the given pathname string into an abstract pathname.
1 голос
/ 26 августа 2011

equals() - Сравнивает два абстрактных пути лексикографически .

Следующие распечатки показывают, что это не тот же путь.

System.out.println(new File("c:\\a").getAbsolutePath());
System.out.println(new File("c:\\a\\").getAbsolutePath());
System.out.println(new File("c:\\a","").getAbsolutePath());
System.out.println(new File("c:\\a\\","").getAbsolutePath());
System.out.println(new File("c:\\a","\\").getAbsolutePath());
System.out.println(new File("c:\\a","\\b").getAbsolutePath());
System.out.println(new File("c:\\a","b").getAbsolutePath());

вывод

c:\a
c:\a
c:\a
c:\a
c:\a\
c:\a\b
c:\a\b
0 голосов
/ 26 августа 2011

Я ничего не знаю о Java, но не так ли, потому что "c: \ a" - это файл, а "\" - это каталог?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...