vala FileInfo get_file_type 未知

发布于 2024-10-08 17:33:38 字数 891 浏览 7 评论 0原文

我一直在尝试创建一个遍历目录并列出该目录和任何子目录中的所有文件的函数:

void get_listing (string dir) {
    try {
        var directory = File.new_for_path (dir);

        var enumerator = directory.enumerate_children (FILE_ATTRIBUTE_STANDARD_NAME, 0);

        FileInfo file_info;
        while ((file_info = enumerator.next_file ()) != null) {
            stdout.printf(file_info.get_file_type().to_string());
            if (file_info.get_file_type() == FileType.DIRECTORY) {
                get_listing(file_info.get_name());
            } else {
                stdout.printf ("%s\n", file_info.get_name ());
            }
        }

    } catch (Error e) {
        stderr.printf ("Error: %s\n", e.message);
        return;
    }
}
int main (string[] args) {
    get_listing(".");

    return 0;
}

当我运行此代码时,不会输出任何子目录中的任何文件。所有文件/目录类型均为“G_FILE_TYPE_UNKNOWN”。有谁知道如何解决这个问题或我可以使用的其他方法。

I've been trying to make a function that goes through a directory and lists all the files in the directory and any sub-directories:

void get_listing (string dir) {
    try {
        var directory = File.new_for_path (dir);

        var enumerator = directory.enumerate_children (FILE_ATTRIBUTE_STANDARD_NAME, 0);

        FileInfo file_info;
        while ((file_info = enumerator.next_file ()) != null) {
            stdout.printf(file_info.get_file_type().to_string());
            if (file_info.get_file_type() == FileType.DIRECTORY) {
                get_listing(file_info.get_name());
            } else {
                stdout.printf ("%s\n", file_info.get_name ());
            }
        }

    } catch (Error e) {
        stderr.printf ("Error: %s\n", e.message);
        return;
    }
}
int main (string[] args) {
    get_listing(".");

    return 0;
}

When I run this code none of the files in any sub-directories are outputted. All the files/directories types are "G_FILE_TYPE_UNKNOWN". Does anyone know how to fix this or another method I could use.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

难得心□动 2024-10-15 17:33:38

您仅按名称枚举文件;如果您希望稍后访问文件类型,您应该将适当的提示传递给枚举器:

FILE_ATTRIBUTE_STANDARD_NAME + "," + FILE_ATTRIBUTE_STANDARD_TYPE

You are enumerating files by name only; if you wish to access file type later, you should pass appropriate hint to enumerator:

FILE_ATTRIBUTE_STANDARD_NAME + "," + FILE_ATTRIBUTE_STANDARD_TYPE
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文