我正在开发一个Eclipse RCP项目,需要让用户选择一些文件。 为方便起见,根据某些条件,应在打开文件之前设置文件选择对话框的初始目录。
由于我已经使用Eclipse RCP / SWT,我正在使用org.eclipse.swt.widgets.FileDialog
此FileDialog
的文档指出使用setFilterPath(String string)
- 方法,该方法应该完全符合我的要求(请参阅documentation)。
FileDialog dialog = new FileDialog(shell, SWT.OPEN);
dialog.setFilterExtensions(new String [] {"*.html"});
dialog.setFilterPath("c:\\temp");
String result = dialog.open();
不幸的是它不起作用,至少不是“每次都”。
我目前没有安装检查它,但我很确定该功能在Windows 200 / XP / Vista机器上完全正常。 我正在使用Windows 7计算机,我认为我遇到了lpstrInitialDir所述的行为。
至少,这正是我所面临的行为:第一次打开对话框时路径是好的,但第二次,路径最初设置为最后选择的路径。 在大多数情况下,这似乎很方便,但它不在我的手中。
这可能是对的吗? 如果是这样,我是否有机会根据我的需要改变行为?
感谢您的回答!
答案 0 :(得分:1)
我为您描述的问题找到了一个简单的解决方案(我有完全相同的问题)。
只需重新排列您的代码,如下所示:
FileDialog dialog = new FileDialog(shell, SWT.OPEN);
dialog.setFilterPath("c:\\temp"); // This line is switched with the following line
dialog.setFilterExtensions(new String [] {"*.html"});
String result = dialog.open();
以某种方式调用的方法是相关的。
答案 1 :(得分:0)
重新打开时,您是否使用相同的FileDialog
对象?
我运行了一些快速测试,发现如果重新设置filterPath,对话框将在正确的位置打开。
如果我再次打开同一个对象,它将从之前选择的位置开始。