我想在java中为浏览文件对话创建过滤器,它应该只允许abc.exe或xyz.exe 我正在使用swt.widgets.FileDialog
目前我正在使用以下字符串
过滤* .exe String[] extensionFilter = { "*.exe" };
fileDialog .setFilterExtensions(extensionFilter);
如何更改此设置以仅允许仅使用abc.exe xyz.exe?
应该搜索abc.exe和xyz.exe
示例:当您允许多个扩展名(.exe,.dat)时,它将搜索具有该(.exe,.dat)扩展名的所有文件,类似地我想搜索abc.exe和xyz.exe
提前致谢
答案 0 :(得分:3)
您可以使用setFilterExtension(String[])
,但您必须知道如何格式化字符串:
public static void main(String[] args)
{
final Display display = new Display();
final Shell shell = new Shell(display);
shell.setText("StackOverflow");
shell.setLayout(new FillLayout());
Button button = new Button(shell, SWT.PUSH);
button.setText("Choose");
button.addListener(SWT.Selection, new Listener()
{
@Override
public void handleEvent(Event arg0)
{
FileDialog dialog = new FileDialog(shell);
dialog.setFilterExtensions(new String[] { "abc.exe;xyz.exe" });
System.out.println(dialog.open());
}
});
shell.pack();
shell.open();
while (!shell.isDisposed())
{
if (!display.readAndDispatch())
{
display.sleep();
}
}
display.dispose();
}
单个字符串"abc.exe;xyz.exe"
告诉它这两个都是允许的。
答案 1 :(得分:0)
试试这个
String[] extensionFilter = { "abc.exe","xyz.exe" };
答案 2 :(得分:0)
您可以使用 setFilterNames
解释here
它仅允许String类型数组变量。无需担心regEx
String[] extensionFilter = { "abc.exe;xyz.exe" };
fileDialog.setFilterExtensions( extensionFilter );