| 149 | } |
| 150 | |
| 151 | Result RmTree(const char* path) |
| 152 | { |
| 153 | #if defined(__linux__) || defined(_WIN32) || (defined(TARGET_OS_OSX) && TARGET_OS_OSX) || defined(DM_PLATFORM_VENDOR) |
| 154 | bool call_before = false; |
| 155 | Result result = IterateTree(path, true, call_before, 0, Iterate_RemoveFile); |
| 156 | if (result != RESULT_OK) { |
| 157 | dmLogError("Failed to remove file tree '%s': %s", path, ResultToString(result)); |
| 158 | return result; |
| 159 | } |
| 160 | result = IterateTree(path, true, call_before, 0, Iterate_RemoveDir); |
| 161 | if (result != RESULT_OK) { |
| 162 | dmLogError("Failed to remove directory tree '%s': %s", path, ResultToString(result)); |
| 163 | return result; |
| 164 | } |
| 165 | return RESULT_OK; |
| 166 | |
| 167 | #else |
| 168 | dmLogOnceError("RmTree is not supported on this platform"); |
| 169 | return RESULT_NOENT; |
| 170 | #endif |
| 171 | } |
| 172 | |
| 173 | Result GetHostFileName(char* buffer, size_t buffer_size, const char* path) |
| 174 | { |