の前に置いています。私はSystem.setProperty("apple.awt.fileDialogForDirectories", "true");
を使ってフォルダを選択しています。 new java.io.File(fd.getFile()).getAbsolutePath();
を実行すると、常に/Users/<user>/Desktop/<folder>
が返されます。/usersを選択すると、/Users/<user>/Desktop/Users
が返されます。どうすれば修正できますか?Javaのfiledialogは常に/ Users/<user>/Macのデスクトップを
コード:
if (System.getProperty("os.name").toLowerCase().contains("mac")) {
System.setProperty("apple.awt.fileDialogForDirectories", "true");
FileDialog fd = new FileDialog(this, "Choose a folder to save streams", FileDialog.LOAD);
fd.setDirectory(saveStreamLocTB.getText());
fd.setVisible(true);
String loc = new java.io.File(fd.getFile()).getAbsolutePath();
if (loc != null) {
p.setSaveStreamLoc(loc);
saveStreamLocTB.setText(loc);
}
System.setProperty("apple.awt.fileDialogForDirectories", "false");
}
編集は、私はそれを得た
なぜ 'apple.awt'を使用していますか? Javaには、フォルダを選択するように簡単に設定できる[クロスプラットフォームのファイル選択ダイアログ(https://docs.oracle.com/javase/tutorial/uiswing/components/filechooser.html)]が用意されています。 – dimo414
絶対パスが必要ない場合、なぜあなたは 'getAbsolutePath()'を使用していますか? – EJP