示例#1
0
文件: mh.c 项目: ignatenkobrain/claws
static gint mh_create_tree(Folder *folder)
{
	gchar *rootpath, *f;

	cm_return_val_if_fail(folder != NULL, -1);

	CHDIR_RETURN_VAL_IF_FAIL(get_mail_base_dir(), -1);
	rootpath = LOCAL_FOLDER(folder)->rootpath;
	MAKE_DIR_IF_NOT_EXIST(rootpath);
	CHDIR_RETURN_VAL_IF_FAIL(rootpath, -1);

	/* Create special directories as needed */
	if (folder->inbox != NULL &&
			folder->inbox->path != NULL)
		f = folder->inbox->path;
	else
		f = INBOX_DIR;
	MAKE_DIR_IF_NOT_EXIST(f);

	if (folder->outbox != NULL &&
			folder->outbox->path != NULL)
		f = folder->outbox->path;
	else
		f = OUTBOX_DIR;
	MAKE_DIR_IF_NOT_EXIST(f);

	if (folder->draft != NULL &&
			folder->draft->path != NULL)
		f = folder->draft->path;
	else
		f = DRAFT_DIR;
	MAKE_DIR_IF_NOT_EXIST(f);

	if (folder->queue != NULL &&
			folder->queue->path != NULL)
		f = folder->queue->path;
	else
		f = QUEUE_DIR;
	MAKE_DIR_IF_NOT_EXIST(f);

	if (folder->trash != NULL &&
			folder->trash->path != NULL)
		f = folder->trash->path;
	else
		f = TRASH_DIR;
	MAKE_DIR_IF_NOT_EXIST(f);

	return 0;
}
示例#2
0
gint syl_setup_rc_dir(void)
{
	if (!is_dir_exist(get_rc_dir())) {
		if (make_dir_hier(get_rc_dir()) < 0)
			return -1;
	}

	MAKE_DIR_IF_NOT_EXIST(get_mail_base_dir());

	CHDIR_RETURN_VAL_IF_FAIL(get_rc_dir(), -1);

	MAKE_DIR_IF_NOT_EXIST(get_imap_cache_dir());
	MAKE_DIR_IF_NOT_EXIST(get_news_cache_dir());
	MAKE_DIR_IF_NOT_EXIST(get_mime_tmp_dir());
	MAKE_DIR_IF_NOT_EXIST(get_tmp_dir());
	MAKE_DIR_IF_NOT_EXIST(UIDL_DIR);
	MAKE_DIR_IF_NOT_EXIST(PLUGIN_DIR);

	/* remove temporary files */
	remove_all_files(get_tmp_dir());
	remove_all_files(get_mime_tmp_dir());

	return 0;
}