Как я могу заставить java FileDialog принять каталоги как свой FileType в OS X?

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

, Даже если файловая система делает его правильно, для программ все еще абсолютно возможно, что содержание каталога списка, чтобы испортить и сделать O (n^2) вид, так чтобы быть на безопасной стороне, я всегда ограничивал бы количество файлов на каталог к не больше, чем 500.

9
задан Esteban Küber 7 August 2009 в 02:34
поделиться

2 ответа

Предполагая, что вы решили использовать FileDialog вместо переносимого JFileChooser, вам необходимо установить системное свойство так, чтобы создаваемые FileDialogs предназначались для каталогов.

Рассматриваемое свойство - apple.awt.fileDialogForDirectories .

Так что просто сделайте следующее:

System.setProperty("apple.awt.fileDialogForDirectories", "true");
FileDialog fd = new FileDialog(this); 
fd.setDirectory(_projectsBaseDir.getPath()); 
fd.setLocation(50,50);
fd.setVisible(true); 
File selectedFile = new File(fd.getFile());
System.setProperty("apple.awt.fileDialogForDirectories", "false");

Следует отметить, что это не переносимо, однако, поскольку вы хотите заменить переносимый JFileDialog, я полагаю, что это не проблема.

10
ответ дан 3 November 2019 в 01:02
поделиться

Я пытаюсь переключиться с использования JFileChooser на FileDialog, когда мое приложение запускается на Mac, чтобы оно использовало средство выбора файлов OSx

Я бы посоветовал вам попробовать оставайтесь в мире Swing и избегайте более тяжелого мира AWT. Есть способы обойти проблемы с Swing L&F на Mac, если это ваша проблема. Взгляните на этот пост на более ранний вопрос , который ссылается на сайт, который показывает, как получить правильные значки Mac в средстве выбора файлов.

Простите, что я не совсем отвечаю на ваш вопрос. Если есть другие причины, по которым вы предпочли бы остаться с FileDialog , я с радостью удалю этот пост.

1
ответ дан 3 November 2019 в 01:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: