Ich verwende System.setProperty("apple.awt.fileDialogForDirectories", "true");
, um nur Ordner auszuwählen. Wenn ich new java.io.File(fd.getFile()).getAbsolutePath();
ausführe, gibt es immer /Users/<user>/Desktop/<folder>
zurück. Sagen wir/Benutzer, es wird /Users/<user>/Desktop/Users
zurückgegeben. Wie kann ich es reparieren?Java filialialog immer vor/Benutzer/<user>/Desktop in Mac
Code:
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");
}
bearbeiten Ich brauche den vollständigen Pfad
Warum benutzen Sie 'apple.awt'? Java bietet einen [plattformübergreifenden Dateiauswahldialog] (https://docs.oracle.com/javase/tutorial/uiswing/components/filechooser.html), der einfach so konfiguriert werden kann, dass nur Ordner ausgewählt werden. – dimo414
Wenn Sie keinen absoluten Pfad möchten, warum verwenden Sie 'getAbsolutePath()'? – EJP