通过DBus命令获取文件属性报错,请求解决方法
解决DBus调用FileManager1接口的参数错误问题
错误原因
你执行的命令缺少必填参数,DBus接口org.freedesktop.FileManager1.ShowItemProperties和ShowItems要求的参数类型为(ass),对应三个参数:
- 第一个参数:字符串数组,要操作的文件/文件夹的URI列表(格式为
file://开头的绝对路径) - 第二个参数:字符串,调用该方法的应用程序标识(可自定义任意值)
- 第三个参数:字符串,父窗口的X11窗口ID(无需关联窗口时填空字符串即可)
正确命令示例
1. 查看单个文件属性
dbus-send --session --print-reply --dest=org.freedesktop.FileManager1 /org/freedesktop/FileManager1 org.freedesktop.FileManager1.ShowItemProperties array:string:"file:///home/yourusername/test.txt" string:"myapp" string:""
2. 查看多个文件属性
dbus-send --session --print-reply --dest=org.freedesktop.FileManager1 /org/freedesktop/FileManager1 org.freedesktop.FileManager1.ShowItemProperties array:string:"file:///home/yourusername/test.txt","file:///home/yourusername/test2.txt" string:"myapp" string:""
3. 调用ShowItems显示指定文件
dbus-send --session --print-reply --dest=org.freedesktop.FileManager1 /org/freedesktop/FileManager1 org.freedesktop.FileManager1.ShowItems array:string:"file:///home/yourusername/test.txt" string:"myapp" string:""
参数说明
- 文件URI:将本地绝对路径转换为
file://格式,比如本地路径/home/user/documents对应file:///home/user/documents - 应用程序标识:仅用于标识调用方,可随意填写(比如
my-cli-tool) - 父窗口ID:如果需要让文件管理器窗口关联到某个应用窗口,填写该窗口的XID(字符串格式);无此需求时填
""即可
内容的提问来源于stack exchange,提问作者Ahmad Ismail
相关产品推荐
相关产品推荐

