MCPcopy Create free account
hub / github.com/OpenDDS/OpenDDS / recursive_remove

Function recursive_remove

dds/DCPS/FileSystemStorage.cpp:209–231  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

207};
208
209void recursive_remove(const ACE_TString& dirname)
210{
211 using namespace OpenDDS::FileSystemStorage;
212 DDS_Dirent dir(dirname.c_str());
213 {
214 CwdGuard cg(dirname);
215
216 for (DDS_DIRENT* ent = dir.read(); ent; ent = dir.read()) {
217 if (ent->d_name[0] == ACE_TEXT('.') && (!ent->d_name[1] ||
218 (ent->d_name[1] == ACE_TEXT('.') && !ent->d_name[2]))) {
219 continue; // skip '.' and '..'
220 }
221
222 if (is_dir(ent->d_name)) {
223 recursive_remove(ent->d_name);
224
225 } else { // regular file
226 ACE_OS::unlink(ent->d_name);
227 }
228 }
229 }
230 dds_rmdir(dirname.c_str());
231}
232
233} // namespace
234

Callers 1

removeMethod · 0.85

Calls 3

is_dirFunction · 0.85
dds_rmdirFunction · 0.85
readMethod · 0.45

Tested by

no test coverage detected