从相对路径创建目录和加载文件

Creating dir and loading file from relative path

我正在使用 C 和 gtk,我需要在 /home/demo/.config 中创建一个目录并从该目录使用相对路径加载文件。我正在用 C 和 gtk 2.0 编写。

我暂时使用 g_build_filename,但这只有在目录存在的情况下才有效,不会创建新目录。

感谢大家的帮助!

编辑:

设法创建所需的目录。现在我需要检查文件是否存在。

像这样:

if(!file_exists)
{
//file doesn't exist
}
else if(file_exists)
{
//file_exists
}

您可以只使用 g_mkdir_with_parents() 创建目录,然后再尝试访问该文件。它将创建所有需要的目录。您无需检查文件是否存在,只需打开它即可。如果文件不存在,打开将失败,当然你需要明智地处理它。所有 I/O 都可能失败。

当然,您可能也不应该对 /home/demo/.config 部分进行硬编码,而应该读出当前用户名(或者使用一些 API,可能是 g_get_user_config_dir())。