Implement DirectoryScanner object

This commit is contained in:
2025-11-13 01:35:15 +01:00
parent 88189c6693
commit 83c2ccb2ca
3 changed files with 125 additions and 36 deletions
+18
View File
@@ -7,6 +7,20 @@ typedef struct {
uint64_t data;
} Handle;
#ifdef _WIN32
typedef struct {
HANDLE handle;
WIN32_FIND_DATA find_data;
bool first;
bool done;
} DirectoryScanner;
#else
typedef struct {
DIR *d;
struct dirent *e;
} DirectoryScanner;
#endif
int file_open(string path, Handle *fd);
void file_close(Handle fd);
int file_lock(Handle fd);
@@ -22,4 +36,8 @@ int remove_file_or_dir(string path);
int get_full_path(string path, char *dst);
int file_read_all(string path, string *data);
int directory_scanner_init(DirectoryScanner *scanner, string path);
int directory_scanner_next(DirectoryScanner *scanner, string *name);
void directory_scanner_free(DirectoryScanner *scanner);
#endif // FILE_SYSTEM_INCLUDED