Zig 如何遍歷一個文件夾?
今天來給大家介紹一個實用功能,如何遍歷一個文件夾。
Dir 裏提供了一個方便的 walk 方法,它可以直接實現這個目的:
const std = @import("std");
const fs = std.fs;
const print = std.debug.print;
pub fn main() !void {
var gpa = std.heap.GeneralPurposeAllocator(.{}){};
defer if (gpa.deinit() != .ok) @panic("leak");
const allocator = gpa.allocator();
// In order to walk the directry, `iterate` must be set to true.
var dir = try fs.cwd().openDir("zig-out", .{ .iterate = true });
defer dir.close();
var walker = try dir.walk(allocator);
defer walker.deinit();
while (try walker.next()) |entry| {
print("path: {s}, basename:{s}, type:{s}\n", .{
entry.path,
entry.basename,
@tagName(entry.kind),
});
}
}
返回的文件順序未定義,如果對返回條目的順序有任何要求,如按字母順序或時間順序,則按此進行排序。 否則,就按未排序的原始順序返回。
參考資料
[1]
供稿,分享:https://ziglang.cc/contributing
[2]
開源項目:https://ask.ziglang.cc/github
[3]
微信羣:https://ask.ziglang.cc/weixin
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/k3qHMTPsECnB3oeY-nKKgQ