Zenity命令,用于多个文件过滤



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

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

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

但是这些都不能正常工作。它没有给出经过过滤的文件,而是只给出注释中给出的第一个文件类型,这意味着;

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

中,它只返回.gif文件作为输出)。

你能不能试试这样做;

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());
            }
    }
}

如果你这样做了:

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

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

如果你这样做:

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

在右下角应该生成一个包含这3种文件类型的组合,您可以选择打印哪一个,按类型键入

如果我是你,我会安装YAD,它是zenity的分支,但是在一个更高级的阶段。

相关内容

  • 没有找到相关文章

最新更新