在SWT FileDialog中设置初始目录

Blu*_*rri 7 java rcp swt filedialog

我正在研究Eclipse RCP项目,需要让用户选择一些文件.为方便起见,根据某些条件,应在打开文件之前设置文件选择对话框的初始目录.

因为我必须使用Eclipse RCP/SWT,所以我正在使用它org.eclipse.swt.widgets.FileDialog.
这个文档FileDialog指出使用setFilterPath(String string)-method,它应该完全符合我的需要(参见文档).

   FileDialog dialog = new FileDialog(shell, SWT.OPEN);
   dialog.setFilterExtensions(new String [] {"*.html"});
   dialog.setFilterPath("c:\\temp");
   String result = dialog.open();
Run Code Online (Sandbox Code Playgroud)

不幸的是它不起作用,至少不是"每次".

我目前没有安装检查它,但我很确定该功能在Windows 200/XP/Vista机器上完全正常.我正在使用Windows 7机器,我认为我正在遭受lpstrInitialDir所描述的行为.

至少,这正是我所面临的行为:第一次打开对话框时路径是好的,但第二次,路径最初设置为最后选择的路径.在大多数情况下,这似乎很方便,但它不在我的手中.

这可能是对的吗?如果是这样,我是否有机会根据我的需要改变行为?

谢谢你的帮助!

Dav*_*d G -1

FileDialog重新打开它时是否使用相同的对象?

我运行了一些快速测试,发现如果您重新设置 filterPath,对话框会在正确的位置打开。

如果我再次打开同一对象,它将从之前选择的位置开始。