1

私は、ディレクトリを通過し、ディレクトリ内のすべてのファイルとサブディレクトリを一覧表示する関数を作成しようとしています。

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」です。誰かがこれまたは私が使用できる別の方法を修正する方法を知っていますか?

4

1 に答える 1

3

名前だけでファイルを列挙しています。後でファイルタイプにアクセスする場合は、適切なヒントを列挙子に渡す必要があります。

FILE_ATTRIBUTE_STANDARD_NAME + "," + FILE_ATTRIBUTE_STANDARD_TYPE
于 2010-12-18T16:20:41.383 に答える