【问题标题】:Initial directory FileDialog SWT初始目录 FileDialog SWT
【发布时间】:2020-07-04 10:55:46
【问题描述】:

我目前正在开发一个应用程序,需要让用户保存文件。我需要当用户按下按钮时,FileDialog 在特定位置打开。我尝试了 dialog.setFilterPath(),但它并非一直有效。我搜索了互联网,发现了这个错误:https://bugs.eclipse.org/bugs/show_bug.cgi?id=426849,我的情况完全相同。我已经尝试了评论 7 中建议的带有“\\?\”前缀的解决方法,它以某种方式工作。 我的问题是:为什么这有效?这个前缀到底是做什么的?我试图搜索,但找不到任何我完全理解的内容。

谢谢你和最好的问候

【问题讨论】:

  • This Microsoft document 将其称为“DOS 设备路径”格式。 SWT 只是将路径传递给它使用的本机 WIndows 对话框,因此本机对话框对此做了一些特殊的事情。请注意,此前缀不适用于 macOS 或 Linux。
  • 是的,我同意并且我也看到了这些信息。我只是好奇,是什么“特别的东西”使它起作用。

标签: java windows swt filedialog


【解决方案1】:

试试这个

Preferences prefs = Preferences.userRoot().node(getClass().getName());
JFileChooser chooser = new JFileChooser(prefs.get(LAST_USED_FOLDER,
    new File(".").getAbsolutePath()));
int returnVal = chooser.showOpenDialog(null);
if (returnVal == JFileChooser.APPROVE_OPTION) {
    // do something
    prefs.put(LAST_USED_FOLDER, chooser.getSelectedFile().getParent());
}

【讨论】:

  • 问题是关于 SWT FileDialog 的细节。
  • 感谢您的回答 :) 但我解决了该解决方法的问题,我只是想知道为什么它有效。
  • @MorganDev 你的?还是评论?
猜你喜欢
  • 2013-08-06
  • 1970-01-01
  • 2016-04-21
  • 2020-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多