【问题标题】:Finding usb properties/details using ruby-dbus and udisk使用 ruby​​-dbus 和 udisk 查找 USB 属性/详细信息
【发布时间】:2013-03-28 20:34:40
【问题描述】:

我需要检测所有可用的 USB 驱动器及其信息。我主要对 USB 设备(闪存驱动器和外部硬盘)、挂载点、uuid、总大小、可用空间感兴趣, 标签,是否安装了usb。我认为 ruby​​-dbus 与 udisk 一起使用会更好。所以安装没有错误。但是我无法继续进行。我需要在linux上使用它。这是示例代码

#!/usr/bin/env ruby
require 'rubygems'
require 'dbus'
bus = DBus::SystemBus.instance
rb_service = bus.service("org.freedesktop.UDisks")
rb_udisk = rb_service.object("/org/freedesktop/UDisks")
rb_udisk.introspect
rb_udisk_iface = rb_udisk["org.freedesktop.UDisks.Device"]
puts rb_udisk_iface.DeviceIsRemovable

但是我得到了这个错误 nil:NilClass (NoMethodError) 的未定义方法“DeviceIsRemovable” 我不明白。有人可以帮助我吗? 有用的链接:- python和udisk http://mindbending.org/en/python-and-udisks-part-5 python udisks - enumerating device information...

感谢任何帮助。

【问题讨论】:

    标签: ruby


    【解决方案1】:
    #!/usr/bin/env ruby
    
    require 'dbus'
    
    bus = DBus::SystemBus.instance
    udisk_service = bus.service("org.freedesktop.UDisks")
    udisk_udisk = udisk_service.object("/org/freedesktop/UDisks")
    udisk_udisk.introspect
    udisk_udisk.default_iface = "org.freedesktop.UDisks"
    disk_list = udisk_udisk.EnumerateDevices[0]
        disk_list.each { |disk|
        udisk_udisk = udisk_service.object("#{disk}")
        udisk_udisk.introspect
        udisk_udisk_i = udisk_udisk["org.freedesktop.UDisks.Device"]
        if udisk_udisk_i["DriveConnectionInterface"] == "usb" && udisk_udisk_i["DeviceIsPartition"]
        #puts disk #Debug
        puts "Device file: #{udisk_udisk_i["DeviceFile"]}"
        puts "Is device mounted: #{udisk_udisk_i["DeviceIsMounted"]}"
        puts "Is device mount path: #{udisk_udisk_i["DeviceMountPaths"]}"
        puts "Device uuid: #{udisk_udisk_i["IdUuid"]}"
        puts "Device label: #{udisk_udisk_i["IdLabel"]}"
        puts ""
        end
        }
    

    【讨论】:

    • 找到了答案。在这里。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-28
    • 2016-10-17
    • 2014-06-08
    相关资源
    最近更新 更多