| ... | ... | @@ -124,3 +124,24 @@ pub fn fileList(alloc: *std.mem.Allocator, dir: std.fs.Dir) ![]string { |
| 124 | 124 | } |
| 125 | 125 | return list.toOwnedSlice(); |
| 126 | 126 | } |
| 127 | |
| 128 | pub fn dirSize(alloc: *std.mem.Allocator, dir: std.fs.Dir) !usize { |
| 129 | var res: usize = 0; |
| 130 | |
| 131 | var walk = try dir.walk(alloc); |
| 132 | defer walk.deinit(); |
| 133 | while (try walk.next()) |entry| { |
| 134 | if (entry.kind != .File) { |
| 135 | continue; |
| 136 | } |
| 137 | res += try fileSize(dir, entry.path); |
| 138 | } |
| 139 | return res; |
| 140 | } |
| 141 | |
| 142 | pub fn fileSize(dir: std.fs.Dir, sub_path: string) !usize { |
| 143 | const f = try dir.openFile(sub_path, .{}); |
| 144 | defer f.close(); |
| 145 | const s = try f.stat(); |
| 146 | return s.size; |
| 147 | } |