2016-11-08 31 views
0

我在我的java程序中尝试了一些用于文件过滤的Zenity命令。Zenity命令用于多文件过滤

zenity --file-selection --file-filter=""*.ogg" "*.wav" "*.aac"" 

zenity --file-selection --multiple --file-filter=*.gif *.jpeg *.jpg 

但这些都不是正确的工作。 insted给所有过滤文件,它只给出评论中给出的第一个文件类型,这意味着;

zenity --file-selection --multiple --file-filter=*.gif *.jpeg *.jpg 

在这些中,它仅返回了.gif文件作为输出)。

回答

0

你可以尝试这样的事情;

import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStreamReader; 

public class RunBash { 

    public static void main(String[] args) { 
      String cmd = "zenity --file-selection --file-filter=\"\"*.gif\" \"*.jpeg\" \"*.jpg\"\""; 

      try { 
       Process proc = Runtime.getRuntime().exec(new String[] {"/bin/bash", "-c", cmd}); 
       BufferedReader read = new BufferedReader(new InputStreamReader(proc.getInputStream())); 
       try { 
        proc.waitFor(); 
       } catch (InterruptedException e) { 
        System.out.println(e.getMessage()); 
       } 
       while (read.ready()) { 
        System.out.println(read.readLine()); 
       } 
      } catch (IOException e) { 
       System.out.println(e.getMessage()); 
      } 
    } 
} 
0

如果你这样做:

$ zenity --file-selection \ 
     --file-filter='Musics | *.ogg | *.wav | *.aac' 

所有选定的文件类型将一起打印出来。这是一个烂摊子......

如果你这样做:

$ zenity --file-selection \ 
     --file-filter='*.ogg' \ 
     --file-filter='*.wav' \ 
     --file-filter='*.aac' 

在右下角应该生成这些3种文件类型组合,您可以选择打印哪一个,类型由

类型

如果我是你,我会安装YAD,这是一个非常优秀的分支,但是在更高级的阶段。