Vala列表文件夹&;子文件夹内容

Vala列表文件夹&;子文件夹内容,vala,Vala,我使用此代码,以树状视图的形式列出我的文件夹内容 try { string directory = "/home/malte/.password-store/"; Dir dir = Dir.open (directory, 0); string? name = null; while ((name = dir.read_name ()) != null) { string path = Path.

我使用此代码,以树状视图的形式列出我的文件夹内容

    try {
        string directory = "/home/malte/.password-store/";
        Dir dir = Dir.open (directory, 0);
        string? name = null;

        while ((name = dir.read_name ()) != null) {
            string path = Path.build_filename (directory, name);

            if (FileUtils.test (path, FileTest.IS_REGULAR)) {
                list_store.append (out iter);
                list_store.set (iter, 0, name);
            }
        }
    } catch (FileError err) {
        stderr.printf (err.message);
    }
这真的非常有效。但我也想列出我的子文件夹内容。子文件夹中也有文件夹。谁能告诉我怎么做


谢谢

只需将列出的文件设置为递归调用自身的函数即可

伪代码:

void list_files_recursive (string dir, List<string> filenames) {
   foreach (filename in dir) {
     if (file_is_dir(filename)) {
       list_files_recursive (filename, filenames);
     } else {
       filenames.add (filename);
     }
   }
}
void list\u files\u recursive(字符串目录,列表文件名){
foreach(目录中的文件名){
if(文件名为dir){
列出递归文件(文件名、文件名);
}否则{
filenames.add(文件名);
}
}
}
至于如何将它们添加到树存储而不是列表存储,这是一个不同的问题,但我确信在某些地方有一些Vala和树存储的示例