我在试着用GIO。我想出了如何使用GVolumeMonitor来捕获卷的变化并获取卷的列表。g_volume_monitor_get_mounts函数给出了一个现有GMount的列表,每一个都可以代表一个硬盘分区或者一个网络共享的挂载(ftp,smb,sftp等)。使用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_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。
发布于 2012-06-18 01:17:16
我想你可能是在找g_file_mount_enclosing_volume()
https://stackoverflow.com/questions/11072475
复制相似问题