我正在尝试学习 glib/gtk。我写了一些代码来打印目录中的文件,如果它们是普通文件,则分配“f”,如果它们是目录,则分配“d”。问题在于如果。它总是获取错误值并将“f”附加到文件名。
#include <glib.h>
#include <glib/gstdio.h>
#include <glib/gprintf.h>
int main()
{
GDir* home = NULL;
GError* error = NULL;
gchar* file = "a";
home = g_dir_open("/home/stamp", 0, &error);
while (file != NULL)
{
file = g_dir_read_name(home);
if (g_file_test(file, G_FILE_TEST_IS_DIR))
{
g_printf("%s: d\n", file);
} else {
g_printf("%s: f\n", file);
}
}
}