|
@@ -57,7 +57,8 @@ void FileAccessWindows::check_errors() const {
|
|
|
|
|
|
Error FileAccessWindows::_open(const String &p_path, int p_mode_flags) {
|
|
|
|
|
|
- String filename = fix_path(p_path);
|
|
|
+ path_src = p_path;
|
|
|
+ path = fix_path(p_path);
|
|
|
if (f)
|
|
|
close();
|
|
|
|
|
@@ -78,19 +79,19 @@ Error FileAccessWindows::_open(const String &p_path, int p_mode_flags) {
|
|
|
backend supports utf8 encoding */
|
|
|
|
|
|
struct _stat st;
|
|
|
- if (_wstat(filename.c_str(), &st) == 0) {
|
|
|
+ if (_wstat(path.c_str(), &st) == 0) {
|
|
|
|
|
|
if (!S_ISREG(st.st_mode))
|
|
|
return ERR_FILE_CANT_OPEN;
|
|
|
};
|
|
|
|
|
|
if (is_backup_save_enabled() && p_mode_flags & WRITE && !(p_mode_flags & READ)) {
|
|
|
- save_path = filename;
|
|
|
- filename = filename + ".tmp";
|
|
|
+ save_path = path;
|
|
|
+ path = path + ".tmp";
|
|
|
//print_line("saving instead to "+path);
|
|
|
}
|
|
|
|
|
|
- f = _wfopen(filename.c_str(), mode_string);
|
|
|
+ f = _wfopen(path.c_str(), mode_string);
|
|
|
|
|
|
if (f == NULL) {
|
|
|
last_error = ERR_FILE_CANT_OPEN;
|
|
@@ -154,6 +155,17 @@ void FileAccessWindows::close() {
|
|
|
ERR_FAIL_COND(rename_error);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+String FileAccessWindows::get_path() const {
|
|
|
+
|
|
|
+ return path_src;
|
|
|
+}
|
|
|
+
|
|
|
+String FileAccessWindows::get_path_absolute() const {
|
|
|
+
|
|
|
+ return path;
|
|
|
+}
|
|
|
+
|
|
|
bool FileAccessWindows::is_open() const {
|
|
|
|
|
|
return (f != NULL);
|