rcpp_framework/core/os/directory.h

51 lines
1.0 KiB
C++

#ifndef DIRECTORY_H
#define DIRECTORY_H
#include "core/string.h"
#include "core/error_list.h"
#include <tinydir/tinydir.h>
#include "core/reference.h"
class Directory : public Reference {
RCPP_OBJECT(Directory, Reference);
public:
Error open_dir(const String &path, bool skip_specials = true);
Error open_dir(const char *path, bool skip_specials = true);
void close_dir();
bool has_next();
bool read();
bool next();
bool current_is_ok();
String current_get_name();
String current_get_path();
String current_get_extension();
const char *current_get_name_cstr();
const char *current_get_path_cstr();
const char *current_get_extension_cstr();
bool current_is_file();
bool current_is_dir();
bool current_is_special_dir();
String read_file(const String &path);
Error read_file_into(const String &path, String *str);
bool is_dir_open();
bool is_dir_closed();
Directory();
virtual ~Directory();
private:
bool _skip_specials;
int _read_file_result;
tinydir_dir _dir;
tinydir_file _file;
bool _dir_open;
};
#endif