| 453 | } |
| 454 | |
| 455 | void DirectoryEntry::removeDir(const std::wstring& path) |
| 456 | { |
| 457 | size_t pos = path.find_first_of(L"\\/"); |
| 458 | |
| 459 | if (pos == std::string::npos) { |
| 460 | for (auto iter = m_SubDirectories.begin(); iter != m_SubDirectories.end(); ++iter) { |
| 461 | DirectoryEntry* entry = *iter; |
| 462 | |
| 463 | if (CaseInsensitiveEqual(entry->getName(), path)) { |
| 464 | entry->removeDirRecursive(); |
| 465 | removeDirectoryFromList(iter); |
| 466 | delete entry; |
| 467 | break; |
| 468 | } |
| 469 | } |
| 470 | } else { |
| 471 | std::wstring dirName = path.substr(0, pos); |
| 472 | std::wstring rest = path.substr(pos + 1); |
| 473 | |
| 474 | DirectoryStats dummy; |
| 475 | DirectoryEntry* entry = getSubDirectoryRecursive(dirName, false, dummy); |
| 476 | |
| 477 | if (entry != nullptr) { |
| 478 | entry->removeDir(rest); |
| 479 | } |
| 480 | } |
| 481 | } |
| 482 | |
| 483 | bool DirectoryEntry::remove(const std::wstring& fileName, int* origin) |
| 484 | { |
no test coverage detected