Seafile FUSE 虚拟文件系统开发---功能
由于前段时间一直有事,博客已经好久没有更新了,后面会陆续不上。第二个功能是,不列出加密的资料库。这部分的功能相对来说很简单,只需要在对仓库列表进行显示的时候,判断该目录项是否加密,若不加密则加入相应返回的结构中。简要的代码如下:
//获取该用户的 repo 列表
list = seaf_repo_manager_get_repos_by_owner (seaf->repo_mgr, user);
//遍历该列表
for (p = list; p; p = p->next) {
SeafRepo *repo = (SeafRepo *)p->data;
/* Don't list virtual repos. */
if (seaf_repo_manager_is_virtual_repo(seaf->repo_mgr, repo->id)) {
seaf_repo_unref (repo);
continue;
}
//如果该repo已经加密,则忽略该项,继续遍历下一项
if(repo -> encrypted)
continue;
char *clean_repo_name = replace_slash (repo->name);
name = g_string_new ("");
g_string_printf (name, "%s_%s", repo->id, clean_repo_name);
filler(buf, name->str, NULL, 0); //添加该目录到返回的结构中
g_string_free (name, TRUE);
g_free (clean_repo_name);
seaf_repo_unref (repo);
}