Directory listing

Under window this code will create a imaginary root directory containing all volumes. It is therefor possible to list all files in all volumes.

boolean imagine_path_search(char *file, boolean partial, char *path, boolean folders, uint number, char *out_buffer, uint out_buffer_size);

Description: Searches for a file recursevly in a path, and writes its location to the out_buffer. If "partial" is set the search will also yeild results wher the seacr string only makes up part of the file name.


IDir *imagine_path_dir_open(char *path);

Description: Opens a path for traversial. If the path is not legal or not a directry the fuction will return NULL.


boolean imagine_path_dir_next(IDir *d, char *file_name_buffer, uint buffer_size);

Description: Writes the name of the next member of the directory to file_name_buffer. Returns FALSE if there are no files left in the directory to write out.


void imagine_path_dir_close(IDir *d);

Description: Closes a directory.


boolean imagine_path_is_dir(char *path);

Description: Returns True if the path is a valid directory.


boolean imagine_path_file_stats(char *path, size_t *size, uint64 *create_time, size_t *modify_time);

Description: Outputs stats about a file.


boolean imagine_path_volume_stats(char *path, size_t *block_size, size_t *free_size, size_t *used_size, size_t *total_size);

Description: Outputs information about a volumes, its block size, and how many block are used and free.


FILE *imagine_path_open(char *path, char *mode);

Description: Same as fopen but UTF8.