2013-06-30 43 views
3

一种方法在SWT打开多个文件是使用FileDialog的:如何从不同的文件夹,从得到的FileDialog绝对路径

FileDialog dialog = new FileDialog(shell, SWT.MULTI); 
dialog.open(); 

System.out.println(dialog.getFilterPath()); 
System.out.println(Arrays.toString(dialog.getFileNames())); 

并且每个文件名可以与过滤路径连接起来。

除了当文件位于对话框中的“最近使用过的”或“搜索”给出的不同文件夹中时(GTK版本),此功能才起作用。过滤器路径最终仅适用于某些文件。

例如,如果路径是:

/path1/file1 
/path2/file2 

filterPath是 'PATH1',和文件名是[文件1,文件2],所以 'PATH2' 缺失。

有没有什么办法在这种情况下获得正确的路径,或者SWT中的任何替代方法?

+0

+ 1非常好的问题,我找不到任何解决方案。期待答案... – Baz

回答

0

如果你的意思是多个文件选择,没有“好”的方法。

我在网上看了一下,目前

我知道该怎么做这样的事情(有可能是一个更好的方法)的唯一方法是允许多个文件被选中,然后getSelectedFiles(文件[] someName )将它们引发到一个文件数组中。

而且我目前它在here

0

这是一个错误,这也影响到其他系统(见bugzilla

现在我决定检查所有文件路径与File.exists()和抛出checked如果任何路径无效,则为异常。

该解决方案虽然不安全,但如果具有相同名称但路径不同的文件,则会导致打开错误的文件。

另一个解决办法是禁用多个文件选择或做一些非常丑陋的黑客与FileDialog

黯然的时刻它是你有多少信任你的用户不要搞砸了自己的文件选择一个问题

相关问题