मैं C++ में अपनी सभी फ़ाइलों/उपनिर्देशिकाओं (रिकर्सिव डिलीशन) के साथ फ़ोल्डर को कैसे हटा सकता हूं?फ़ोल्डर और सभी फाइलें/उपनिर्देशिकाएं हटाएं
उत्तर
मानक सी ++ ऐसा करने का कोई साधन नहीं प्रदान करता है - आपको ऑपरेटिंग सिस्टम विशिष्ट कोड या बूस्ट जैसे क्रॉस-प्लेटफ़ॉर्म लाइब्रेरी का उपयोग करना होगा।
Boost.Filesystem से आप boost::remove_all
का उपयोग कर सकते हैं।
:
system("rm -rf /path/to/directory")
शायद अधिक आप जो खोज रहे हैं, लेकिन यूनिक्स विशिष्ट:
/* Implement system("rm -rf") */
#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
#include <sys/syslimits.h>
#include <ftw.h>
/* Call unlink or rmdir on the path, as appropriate. */
int
rm(const char *path, const struct stat *s, int flag, struct FTW *f)
{
int status;
int (*rm_func)(const char *);
switch(flag) {
default: rm_func = unlink; break;
case FTW_DP: rm_func = rmdir;
}
if(status = rm_func(path), status != 0)
perror(path);
else
puts(path);
return status;
}
int
main(int argc, char **argv)
{
while(*++argv) {
if(nftw(*argv, rm, OPEN_MAX, FTW_DEPTH)) {
perror(*argv);
return EXIT_FAILURE;
}
}
return EXIT_SUCCESS;
}
क्या यह डाउनवॉटेड था क्योंकि यह सी ++ के बजाय सी है (हालांकि यह g ++ -Wall -Wextra के साथ ठीक है), या डाउनवॉटर के प्लेटफ़ॉर्म में nftw नहीं है? जब आप डाउनवोट करते हैं तो टिप्पणी करें, कृपया! यह ठोस कोड है। –
कैसे पोर्टेबल 'सिस्टम (" आरएम-आरएफ/पथ/से/निर्देशिका ") है? क्या यह किसी भी * निक्स ओएस पर काम करेगा? स्पष्ट रूप से विंडोज़ में काम नहीं करेगा। –
आप ftw()
readdir_r()
उपयोग कर सकते हैं, nftw()
, readdir()
, फ़ाइलें एक निर्देशिका पार और नष्ट करने के लिए रिकर्सिवली।
लेकिन चूंकि न तो ftw()
, nftw()
, readdir()
थ्रेड-सुरक्षित है, इसलिए यदि आपका प्रोग्राम बहु-थ्रेडेड वातावरण में चलता है तो मैं readdir_r()
की अनुशंसा करूंगा।
- 1. बल फ़ोल्डर से सभी फ़ाइलों को हटाएं
- 2. सी # उस फ़ोल्डर के भीतर एक फ़ोल्डर और सभी फाइलों और फ़ोल्डर्स को हटाएं
- 3. सभी फ़ोल्डर और उप-फ़ोल्डरों
- 4. वापस हटाएं। एसवीएन फ़ोल्डर
- 5. फ़ोल्डर से छवि हटाएं PHP
- 6. सभी निर्देशिका अनुमतियां हटाएं
- 7. सी ++ में फ़ोल्डर को कैसे हटाएं?
- 8. सभी पिछली प्रतिबद्धताओं से एक निर्देशिका हटाएं
- 9. फ़ोल्डर
- 10. संग्रह हटाएं सभी अनदेखा मामले?
- 11. सभी CKEditor उदाहरणों को हटाएं
- 12. सभी गिट कमिट इतिहास हटाएं
- 13. UIScrollView से सभी सबव्यूव हटाएं?
- 14. विंडोज़ में बैट फ़ाइल का उपयोग कर सभी सामग्री वाले फ़ोल्डर को कैसे हटाएं?
- 15. फ़ोल्डर में नवीनतम तीन को छोड़कर सभी फ़ाइलों को कैसे हटाएं
- 16. पोस्टग्रेज़: सभी टेबल हटाएं या हटाएं कैस्केड करें?
- 17. चींटी में कुछ फ़ोल्डर के तहत सभी सबफ़ोल्डर को कैसे हटाएं?
- 18. पूरी तरह से एक्सकोड परियोजना और सभी संदर्भ हटाएं?
- 19. JQuery डेटाटेबल्स - FnFilter को हटाएं और सभी परिणाम प्रदर्शित करें
- 20. सभी स्थानीय परिवर्तनों को हटाएं और पेड़ पर वापस जाएं
- 21. फ़ोल्डर से सभी छवियों को लोड और प्रदर्शित करें
- 22. Vbscript सूची और फ़ोल्डर में सभी पीडीएफ फाइलों सबफ़ोल्डर
- 23. किसी फ़ोल्डर, इसके उपफोल्डर और सभी के अंदर सभी फ़ाइलों को कैसे गिनें। गिनती में फ़ोल्डर गणना
- 24. रेल में सभी तालिकाओं से सभी डेटा कैसे हटाएं?
- 25. Wix: फ़ोल्डर और सभी उप फ़ोल्डर के लिए अनुमतियाँ कैसे सेट करें
- 26. ऐप पर निर्दिष्ट निर्देशिका में सभी FILES को कैसे हटाएं?
- 27. imap "सभी खोजें" स्कोप: सभी फ़ोल्डर्स/वर्तमान फ़ोल्डर?
- 28. फ़्लैश as3 सभी बच्चों को हटाएं
- 29. Magento: सभी स्थायी रीडायरेक्ट को कैसे हटाएं
- 30. MySQL में सभी अनाथ रिकॉर्ड कैसे हटाएं?
बस एक तरफ नोड: यदि आप बूस्ट पर भरोसा नहीं करना चाहते हैं, तो इस सवाल के लिए एक डुप्लिकेट है, स्वीकार्य उत्तर [वहां] पर एक नज़र रखना उचित है (http://stackoverflow.com/a/2256974/1,312,382)। – Aconcagua