From e7ede19e6f7cfb97574bf69b442cefa48181be12 Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Thu, 18 Nov 2021 21:19:19 -0800 Subject: [PATCH] add dirSize and fileSize --- src/lib.zig | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/lib.zig b/src/lib.zig index c0d361dfeb7f5152201b8040d0a8b6efa591b20d..0f29f2eee5360d139669251efef5030eee7e0eec 100644 --- a/src/lib.zig +++ b/src/lib.zig @@ -124,3 +124,24 @@ pub fn fileList(alloc: *std.mem.Allocator, dir: std.fs.Dir) ![]string { } return list.toOwnedSlice(); } + +pub fn dirSize(alloc: *std.mem.Allocator, dir: std.fs.Dir) !usize { + var res: usize = 0; + + var walk = try dir.walk(alloc); + defer walk.deinit(); + while (try walk.next()) |entry| { + if (entry.kind != .File) { + continue; + } + res += try fileSize(dir, entry.path); + } + return res; +} + +pub fn fileSize(dir: std.fs.Dir, sub_path: string) !usize { + const f = try dir.openFile(sub_path, .{}); + defer f.close(); + const s = try f.stat(); + return s.size; +} -- 2.54.0