我正在尝试使用GIO。我想出了如何使用GVolumeMonitor来捕获卷更改并获取卷列表。 g_volume_monitor_get_mounts
函数为我提供了现有GMount的列表。它们中的每一个都可以代表硬盘分区或网络共享(ftp,smb,sftp等)。使用g_volume_mount
似乎可以安装HDD分区。但是如何创建代表网络共享的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_unref
和g_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。