2016-11-08 2 views
0

Я попробовал команду Zenity для фильтрации файлов в моей программе java.Команда Zenity для множественной фильтрации файлов

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

и

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

Но они не работали должным образом. insted для предоставления всего отфильтрованного файла, он дает только первый тип файла, указанный в комментарии, thant означает;

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, являющийся вилкой зенита, но на гораздо более продвинутой стадии.

Смежные вопросы