| ... | @@ -124,3 +124,24 @@ pub fn fileList(alloc: *std.mem.Allocator, dir: std.fs.Dir) ![]string { | ... | @@ -124,3 +124,24 @@ pub fn fileList(alloc: *std.mem.Allocator, dir: std.fs.Dir) ![]string { |
| 124 | } | 124 | } |
| 125 | return list.toOwnedSlice(); | 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 | } |