JFileChooser и NTFS JunctionPoints / Симлинки? - PullRequest
4 голосов
/ 20 августа 2011

JFileChooser в Swing (Java 1.6.0_u25), похоже, не знает, как обращаться с точками соединения NTFS или символическими ссылками.

У средства выбора файлов нет специальной обработки:

int rv = mainfileChooser.showOpenDialog(parentFrame)

При использовании этого в окне Windows 7 нельзя вводить специальные папки в разделе «Мои документы» («Мои рисунки», «Мои видео», «Моя музыка») - пользователь нажимает на них, но ничего не происходит иони не могут быть выбраны.После некоторых экспериментов то же самое происходит с любой SymLink или Junction Point (как предварительно сгенерированной ОС, так и созданной вручную.)

.lnk Ярлыки на каталоги работают нормально.

Есть лиспособ исправить это и позволить моим пользователям сохранять изображения в «Мои рисунки»?

Ответы [ 3 ]

3 голосов
/ 20 августа 2011

Проблема с этими специальными типами заключается в том, что они не являются кроссплатформенными, поэтому JFileChooser не поддерживает их.

Возможно, вы захотите использовать нативный XFileDialog .Не использовал это сам, но это кажется актуальным для вас.Имейте в виду, что он является родным и не будет переносимым на Linux / OSX.

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

По удивительному совпадению, Java 1.6u27 только что поставлена ​​и содержит исправление для этой самой проблемы!

Примечания к выпуску: http://www.oracle.com/technetwork/java/javase/2col/6u27bugfixes-444150.html

Ошибка записи: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7012783

Обсуждение ошибок вращается вокруг ссылок DFS, а не точек соединения, но я считаю, что проблемы одинаковы, и при локальном тестировании все дурацкое поведение исчезло, и я могу просто сохранить его в Мои рисунки (и друзей).

0 голосов
/ 20 августа 2011

Специальные папки работают для меня, по крайней мере, в системном стиле

...