1 int removeDir(string dirPath) 2 { 3 struct _finddata_t fb; //find the storage structure of the same properties file. 4 string path; 5 long handle; 6 int resultone; 7 int noFile; // the tag for the system's hidden files 8 9 noFile = 0; 10 handle = 0; 11 12 path = dirPath + "/*"; 13 14 handle = _findfirst(path.c_str(), &fb); 15 16 //find the first matching file 17 if (handle != -1) 18 { 19 //find next matching file 20 while (0 == _findnext(handle, &fb)) 21 { 22 // "." and ".." are not processed 23 noFile = strcmp(fb.name, ".."); 24 25 if (0 != noFile) 26 { 27 path.clear(); 28 path = dirPath + "/" + fb.name; 29 30 //fb.attrib == 16 means folder 31 if (fb.attrib == 16) 32 { 33 removeDir(path); 34 } 35 else 36 { 37 //not folder, delete it. if empty folder, using _rmdir istead. 38 remove(path.c_str()); 39 } 40 } 41 } 42 // close the folder and delete it only if it is closed. For standard c, using closedir instead(findclose -> closedir). 43 // when Handle is created, it should be closed at last. 44 _findclose(handle);
return 0; 45 }