用于多个文件过滤的 Zenity 命令
Zenity command for multiple file filtering
我在 java 程序中尝试了一些用于文件过滤的 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 文件作为输出)。
你能试试这样吗;
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 的分支,但处于更高级的阶段。
我在 java 程序中尝试了一些用于文件过滤的 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 文件作为输出)。
你能试试这样吗;
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 的分支,但处于更高级的阶段。