Skip to content

Commit dfa9724

Browse files
committed
Fixed #11 added WsjcppCore::recoursiveRemoveDir
1 parent 07f4bc8 commit dfa9724

File tree

4 files changed

+49
-0
lines changed

4 files changed

+49
-0
lines changed

README.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -410,4 +410,16 @@ Recoursive copy files
410410
if (WsjcppCore::recoursiveCopyFiles("./folder1", "./folder2")) {
411411
// everything ok
412412
}
413+
```
414+
415+
416+
### recoursiveRemoveDir
417+
418+
Recoursive remove dir (+ subdirs) and files
419+
*Please will be careful*
420+
421+
```
422+
if (WsjcppCore::recoursiveRemoveDir("./folder2")) {
423+
// everything removed
424+
}
413425
```

src/main.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,11 @@ int main(int argc, char* argv[]) {
2626
"Evgenii Sopov",
2727
""
2828
);
29+
if (WsjcppCore::dirExists("./tmp2")) {
30+
WsjcppCore::recoursiveRemoveDir("./tmp2");
31+
}
2932
WsjcppCore::recoursiveCopyFiles("./tmp", "./tmp2");
33+
WsjcppCore::recoursiveRemoveDir("./tmp2");
3034

3135
return 0;
3236
}

src/wsjcpp_core.cpp

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -711,6 +711,38 @@ bool WsjcppCore::recoursiveCopyFiles(const std::string& sSourceDir, const std::s
711711
return true;
712712
}
713713

714+
715+
716+
// ---------------------------------------------------------------------
717+
718+
bool WsjcppCore::recoursiveRemoveDir(const std::string& sDir) {
719+
if (!WsjcppCore::dirExists(sDir)) {
720+
WsjcppLog::err("recoursiveCopyFiles", "Dir '" + sDir + "' did not exists");
721+
return false;
722+
}
723+
724+
std::vector<std::string> vFiles = WsjcppCore::getListOfFiles(sDir);
725+
for (int i = 0; i < vFiles.size(); i++) {
726+
std::string sFile = sDir + "/" + vFiles[i];
727+
if (!WsjcppCore::removeFile(sFile)) {
728+
return false;
729+
}
730+
}
731+
732+
std::vector<std::string> vDirs = WsjcppCore::getListOfDirs(sDir);
733+
for (int i = 0; i < vDirs.size(); i++) {
734+
std::string sDir2 = sDir + "/" + vDirs[i];
735+
if (!WsjcppCore::recoursiveRemoveDir(sDir2)) {
736+
return false;
737+
}
738+
}
739+
740+
if (!WsjcppCore::removeFile(sDir)) {
741+
return false;
742+
}
743+
return true;
744+
}
745+
714746
// ---------------------------------------------------------------------
715747
// WsjcppLog
716748

src/wsjcpp_core.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ class WsjcppCore {
7070
static std::string getHumanSizeBytes(long nBytes);
7171

7272
static bool recoursiveCopyFiles(const std::string& sSourceDir, const std::string& sTargetDir);
73+
static bool recoursiveRemoveDir(const std::string& sDir);
7374
};
7475

7576

0 commit comments

Comments
 (0)