Revert "Fix Directory Open Check"

This reverts commit 3f898f5207.
This commit is contained in:
Nathan Franke 2020-07-06 01:17:16 -05:00 committed by Aaron Franke
parent 9de0439a45
commit b9e1db7e03
No known key found for this signature in database
GPG Key ID: 40A1750B977E56BF
3 changed files with 33 additions and 30 deletions

View File

@ -2369,17 +2369,13 @@ Error _Directory::open(const String &p_path) {
if (d) if (d)
memdelete(d); memdelete(d);
d = alt; d = alt;
dir_open = true;
return OK; return OK;
} }
bool _Directory::is_open() const {
return d && dir_open;
}
Error _Directory::list_dir_begin(bool p_skip_navigational, bool p_skip_hidden) { Error _Directory::list_dir_begin(bool p_skip_navigational, bool p_skip_hidden) {
ERR_FAIL_COND_V_MSG(!is_open(), ERR_UNCONFIGURED, "Directory must be opened before use.");
ERR_FAIL_COND_V_MSG(!d, ERR_UNCONFIGURED, "Directory must be opened before use.");
_list_skip_navigational = p_skip_navigational; _list_skip_navigational = p_skip_navigational;
_list_skip_hidden = p_skip_hidden; _list_skip_hidden = p_skip_hidden;
@ -2388,7 +2384,8 @@ Error _Directory::list_dir_begin(bool p_skip_navigational, bool p_skip_hidden) {
} }
String _Directory::get_next() { String _Directory::get_next() {
ERR_FAIL_COND_V_MSG(!is_open(), "", "Directory must be opened before use.");
ERR_FAIL_COND_V_MSG(!d, "", "Directory must be opened before use.");
String next = d->get_next(); String next = d->get_next();
while (next != "" && ((_list_skip_navigational && (next == "." || next == "..")) || (_list_skip_hidden && d->current_is_hidden()))) { while (next != "" && ((_list_skip_navigational && (next == "." || next == "..")) || (_list_skip_hidden && d->current_is_hidden()))) {
@ -2398,38 +2395,45 @@ String _Directory::get_next() {
return next; return next;
} }
bool _Directory::current_is_dir() const { bool _Directory::current_is_dir() const {
ERR_FAIL_COND_V_MSG(!is_open(), false, "Directory must be opened before use.");
ERR_FAIL_COND_V_MSG(!d, false, "Directory must be opened before use.");
return d->current_is_dir(); return d->current_is_dir();
} }
void _Directory::list_dir_end() { void _Directory::list_dir_end() {
ERR_FAIL_COND_MSG(!is_open(), "Directory must be opened before use.");
ERR_FAIL_COND_MSG(!d, "Directory must be opened before use.");
d->list_dir_end(); d->list_dir_end();
} }
int _Directory::get_drive_count() { int _Directory::get_drive_count() {
ERR_FAIL_COND_V_MSG(!is_open(), 0, "Directory must be opened before use.");
ERR_FAIL_COND_V_MSG(!d, 0, "Directory must be opened before use.");
return d->get_drive_count(); return d->get_drive_count();
} }
String _Directory::get_drive(int p_drive) { String _Directory::get_drive(int p_drive) {
ERR_FAIL_COND_V_MSG(!is_open(), "", "Directory must be opened before use.");
ERR_FAIL_COND_V_MSG(!d, "", "Directory must be opened before use.");
return d->get_drive(p_drive); return d->get_drive(p_drive);
} }
int _Directory::get_current_drive() { int _Directory::get_current_drive() {
ERR_FAIL_COND_V_MSG(!is_open(), 0, "Directory must be opened before use."); ERR_FAIL_COND_V_MSG(!d, 0, "Directory must be opened before use.");
return d->get_current_drive(); return d->get_current_drive();
} }
Error _Directory::change_dir(String p_dir) { Error _Directory::change_dir(String p_dir) {
ERR_FAIL_COND_V_MSG(!is_open(), ERR_UNCONFIGURED, "Directory must be opened before use.");
ERR_FAIL_COND_V_MSG(!d, ERR_UNCONFIGURED, "Directory must be opened before use.");
return d->change_dir(p_dir); return d->change_dir(p_dir);
} }
String _Directory::get_current_dir() { String _Directory::get_current_dir() {
ERR_FAIL_COND_V_MSG(!is_open(), "", "Directory must be opened before use.");
ERR_FAIL_COND_V_MSG(!d, "", "Directory must be opened before use.");
return d->get_current_dir(); return d->get_current_dir();
} }
Error _Directory::make_dir(String p_dir) { Error _Directory::make_dir(String p_dir) {
ERR_FAIL_COND_V_MSG(!is_open(), ERR_UNCONFIGURED, "Directory must be opened before use.");
ERR_FAIL_COND_V_MSG(!d, ERR_UNCONFIGURED, "Directory must be opened before use.");
if (!p_dir.is_rel_path()) { if (!p_dir.is_rel_path()) {
DirAccess *d = DirAccess::create_for_path(p_dir); DirAccess *d = DirAccess::create_for_path(p_dir);
Error err = d->make_dir(p_dir); Error err = d->make_dir(p_dir);
@ -2439,7 +2443,8 @@ Error _Directory::make_dir(String p_dir) {
return d->make_dir(p_dir); return d->make_dir(p_dir);
} }
Error _Directory::make_dir_recursive(String p_dir) { Error _Directory::make_dir_recursive(String p_dir) {
ERR_FAIL_COND_V_MSG(!is_open(), ERR_UNCONFIGURED, "Directory must be opened before use.");
ERR_FAIL_COND_V_MSG(!d, ERR_UNCONFIGURED, "Directory must be opened before use.");
if (!p_dir.is_rel_path()) { if (!p_dir.is_rel_path()) {
DirAccess *d = DirAccess::create_for_path(p_dir); DirAccess *d = DirAccess::create_for_path(p_dir);
Error err = d->make_dir_recursive(p_dir); Error err = d->make_dir_recursive(p_dir);
@ -2450,7 +2455,8 @@ Error _Directory::make_dir_recursive(String p_dir) {
} }
bool _Directory::file_exists(String p_file) { bool _Directory::file_exists(String p_file) {
ERR_FAIL_COND_V_MSG(!is_open(), false, "Directory must be opened before use.");
ERR_FAIL_COND_V_MSG(!d, false, "Directory must be opened before use.");
if (!p_file.is_rel_path()) { if (!p_file.is_rel_path()) {
return FileAccess::exists(p_file); return FileAccess::exists(p_file);
@ -2460,7 +2466,7 @@ bool _Directory::file_exists(String p_file) {
} }
bool _Directory::dir_exists(String p_dir) { bool _Directory::dir_exists(String p_dir) {
ERR_FAIL_COND_V_MSG(!is_open(), false, "Directory must be opened before use."); ERR_FAIL_COND_V_MSG(!d, false, "Directory must be opened before use.");
if (!p_dir.is_rel_path()) { if (!p_dir.is_rel_path()) {
DirAccess *d = DirAccess::create_for_path(p_dir); DirAccess *d = DirAccess::create_for_path(p_dir);
@ -2474,16 +2480,19 @@ bool _Directory::dir_exists(String p_dir) {
} }
int _Directory::get_space_left() { int _Directory::get_space_left() {
ERR_FAIL_COND_V_MSG(!is_open(), 0, "Directory must be opened before use.");
ERR_FAIL_COND_V_MSG(!d, 0, "Directory must be opened before use.");
return d->get_space_left() / 1024 * 1024; //return value in megabytes, given binding is int return d->get_space_left() / 1024 * 1024; //return value in megabytes, given binding is int
} }
Error _Directory::copy(String p_from, String p_to) { Error _Directory::copy(String p_from, String p_to) {
ERR_FAIL_COND_V_MSG(!is_open(), ERR_UNCONFIGURED, "Directory must be opened before use.");
ERR_FAIL_COND_V_MSG(!d, ERR_UNCONFIGURED, "Directory must be opened before use.");
return d->copy(p_from, p_to); return d->copy(p_from, p_to);
} }
Error _Directory::rename(String p_from, String p_to) { Error _Directory::rename(String p_from, String p_to) {
ERR_FAIL_COND_V_MSG(!is_open(), ERR_UNCONFIGURED, "Directory must be opened before use.");
ERR_FAIL_COND_V_MSG(!d, ERR_UNCONFIGURED, "Directory must be opened before use.");
if (!p_from.is_rel_path()) { if (!p_from.is_rel_path()) {
DirAccess *d = DirAccess::create_for_path(p_from); DirAccess *d = DirAccess::create_for_path(p_from);
Error err = d->rename(p_from, p_to); Error err = d->rename(p_from, p_to);
@ -2494,7 +2503,8 @@ Error _Directory::rename(String p_from, String p_to) {
return d->rename(p_from, p_to); return d->rename(p_from, p_to);
} }
Error _Directory::remove(String p_name) { Error _Directory::remove(String p_name) {
ERR_FAIL_COND_V_MSG(!is_open(), ERR_UNCONFIGURED, "Directory must be opened before use.");
ERR_FAIL_COND_V_MSG(!d, ERR_UNCONFIGURED, "Directory must be opened before use.");
if (!p_name.is_rel_path()) { if (!p_name.is_rel_path()) {
DirAccess *d = DirAccess::create_for_path(p_name); DirAccess *d = DirAccess::create_for_path(p_name);
Error err = d->remove(p_name); Error err = d->remove(p_name);

View File

@ -570,7 +570,6 @@ class _Directory : public Reference {
GDCLASS(_Directory, Reference); GDCLASS(_Directory, Reference);
DirAccess *d; DirAccess *d;
bool dir_open = false;
protected: protected:
static void _bind_methods(); static void _bind_methods();
@ -578,8 +577,6 @@ protected:
public: public:
Error open(const String &p_path); Error open(const String &p_path);
bool is_open() const;
Error list_dir_begin(bool p_skip_navigational = false, bool p_skip_hidden = false); // This starts dir listing. Error list_dir_begin(bool p_skip_navigational = false, bool p_skip_hidden = false); // This starts dir listing.
String get_next(); String get_next();
bool current_is_dir() const; bool current_is_dir() const;

View File

@ -69,11 +69,7 @@ Error DirAccessWindows::list_dir_begin() {
list_dir_end(); list_dir_end();
p->h = FindFirstFileExW((current_dir + "\\*").c_str(), FindExInfoStandard, &p->fu, FindExSearchNameMatch, NULL, 0); p->h = FindFirstFileExW((current_dir + "\\*").c_str(), FindExInfoStandard, &p->fu, FindExSearchNameMatch, NULL, 0);
if (p->h == INVALID_HANDLE_VALUE) { return (p->h == INVALID_HANDLE_VALUE) ? ERR_CANT_OPEN : OK;
return ERR_CANT_OPEN;
}
return OK;
} }
String DirAccessWindows::get_next() { String DirAccessWindows::get_next() {