我使用此代码将我的文件夹内容作为TreeView列出。
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);
}这真的很好用。但我也想列出我的子文件夹内容。子文件夹中也有文件夹。有没有人能给我点提示怎么做?
谢谢
发布于 2018-05-23 16:44:57
只需使文件列出递归调用自身的函数即可。
伪码:
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);
}
}
}至于如何将它们添加到树存储而不是列表存储,这是一个不同的问题,但我相信在Vala和树存储中一定有示例。
https://stackoverflow.com/questions/50480741
复制相似问题