1

我正在尝试使用GIO。我想出了如何使用 GVolumeMonitor 来捕捉音量变化并获取音量列表。g_volume_monitor_get_mounts函数给了我一个现有 GMount 的列表。它们中的每一个都可以代表一个 HDD 分区或一个网络共享的挂载(ftp、smb、sftp 等)。安装 HDD 分区似乎可以使用g_volume_mount. 但是如何创建代表网络共享的 GMount 呢?哪些类对此负责?

这是我的代码:

GVolumeMonitor* monitor = g_volume_monitor_get();
GList* list = g_volume_monitor_get_mounts(monitor);
for(; list; list = list->next) {
  GMount* mount = static_cast<GMount*>(list->data);
  GFile* file = g_mount_get_root(mount);
  qDebug() << "Mount(" << g_mount_get_name(mount) << 
              ", " << g_file_get_path(file) << ")";
}

(我知道必须有g_object_unrefg_list_free。)

输出:

Mount( SFTP for ri on host.org ,  /home/ri/.gvfs/SFTP for ri on host.org ) 
Mount( Yellow hard disk ,  /media/Yellow hard disk ) 

我使用 nautilus 创建了第一个 sftp 挂载。现在我想自己实现这个功能。目标操作系统是 Ubuntu 12.04。

4

1 回答 1

1

我想你可能正在寻找g_file_mount_enclosing_volume()

于 2012-06-17T17:17:16.210 回答