【发布时间】:2014-06-08 06:47:37
【问题描述】:
我开发了一个应用程序,它使用 udisks 版本 1 来查找和列出连接的 USB 驱动器的详细信息。详细信息包括设备(/dev/sdb1...等)、挂载点和可用空间。但是,我发现现代发行版默认安装了 udisks2。这是在另一个 SO 线程上找到的小代码:-
#!/usr/bin/python2.7
import dbus
bus = dbus.SystemBus()
ud_manager_obj = bus.get_object('org.freedesktop.UDisks2', '/org/freedesktop/UDisks2')
om = dbus.Interface(ud_manager_obj, 'org.freedesktop.DBus.ObjectManager')
for k,v in om.GetManagedObjects().iteritems():
drive_info = v.get('org.freedesktop.UDisks2.Drive', {})
if drive_info.get('ConnectionBus') == 'usb' and drive_info.get('Removable'):
if drive_info['MediaRemovable']:
print("Device Path: %s" % k)
它产生:-
[sundar@arch ~]$ ./udisk2.py
Device Path: /org/freedesktop/UDisks2/drives/JetFlash_Transcend_8GB_GLFK4LYSFG3HZZ48
上面的结果很好,但是如何连接org.freedesktop.UDisks2.Block并获取设备的属性?
http://udisks.freedesktop.org/docs/latest/gdbus-org.freedesktop.UDisks2.Block.html
【问题讨论】: