C++ में फ़ाइल सिस्टम के साथ काम करना: शुरुआती लोगों के लिए
\n\nफ़ाइल सिस्टम के साथ काम करना किसी भी प्रोग्रामर के लिए एक प्रमुख कार्य है। C++ में फ़ाइलों और निर्देशिकाओं के साथ बातचीत करने के कई तरीके हैं: क्लासिक fstream स्ट्रीम से लेकर आधुनिक std::filesystem (C++17) तक। इस लेख में हम मुख्य संचालनों पर चर्चा करेंगे: फ़ाइलों को पढ़ना और लिखना, उनके अस्तित्व की जाँच करना, फ़ोल्डर बनाना और हटाना, और फ़ाइल सिस्टम में नेविगेट करना। सभी कोड उदाहरण C++ में लिखे गए हैं और शुरुआती लोगों के लिए उपयुक्त हैं।
1. fstream के माध्यम से फ़ाइलों के साथ काम करने की मूल बातें
\n\nक्लासेस ifstream (फ़ाइल से इनपुट), ofstream (फ़ाइल में आउटपुट) और fstream (इनपुट/आउटपुट) टेक्स्ट और बाइनरी फ़ाइलों के साथ काम करने के लिए बुनियादी उपकरण हैं। ये हेडर फ़ाइल <fstream> में स्थित हैं।
फ़ाइल से पढ़ना
\nफ़ाइल से डेटा पढ़ने के लिए, एक ifstream ऑब्जेक्ट बनाएँ और फ़ाइल खोलें। सुनिश्चित करें कि फ़ाइल मौजूद है, अन्यथा स्ट्रीम त्रुटि स्थिति में होगी।
#include <iostream>\n#include <fstream>\n#include <string>\n\nint main() {\n std::ifstream file("example.txt");\n if (!file.is_open()) {\n std::cerr << "फ़ाइल खोलने में त्रुटि\\n";\n return 1;\n }\n\n std::string line;\n while (std::getline(file, line)) {\n std::cout << line << std::endl;\n }\n\n file.close();\n return 0;\n}\n\nफ़ाइल में लिखना
\nलिखने के लिए ofstream का उपयोग करें। यदि फ़ाइल मौजूद नहीं है, तो वह बनाई जाएगी। यदि मौजूद है, तो सामग्री अधिलेखित हो जाएगी (जब तक कि फ़्लैग std::ios::app निर्दिष्ट न हो)।
#include <fstream>\n\nint main() {\n std::ofstream file("output.txt");\n if (!file.is_open()) {\n std::cerr << "फ़ाइल बनाने में विफल\\n";\n return 1;\n }\n\n file << "Hello, world!\\n";\n file << "C++ फ़ाइल सिस्टम\\n";\n\n file.close();\n return 0;\n}\n\nफ़ाइल के अंत में डेटा जोड़ना
\nपिछले डेटा को हटाए बिना अंत में डेटा जोड़ने के लिए फ़्लैग std::ios::app (append) का उपयोग करें।
std::ofstream file("log.txt", std::ios::app);\nfile << "नई प्रविष्टि\\n";\nfile.close();\n\n2. निर्देशिकाओं और फ़ाइल सिस्टम के साथ काम करना (C++17)
\n\nC++17 से शुरू करके, मानक लाइब्रेरी में हेडर <filesystem> शामिल है, जो फ़ाइल सिस्टम के साथ काम करने के लिए एक सुविधाजनक और क्रॉस-प्लेटफ़ॉर्म इंटरफ़ेस प्रदान करता है। इसका उपयोग करने के लिए, कंपाइलेशन फ़्लैग -std=c++17 (या उच्चतर) जोड़ें और <filesystem> शामिल करें।
फ़ाइल या निर्देशिका के अस्तित्व की जाँच करना
\n#include <iostream>\n#include <filesystem>\nnamespace fs = std::filesystem;\n\nint main() {\n fs::path p = "example.txt";\n \n if (fs::exists(p)) {\n std::cout << "फ़ाइल मौजूद है\\n";\n std::cout << "आकार: " << fs::file_size(p) << " बाइट्स\\n";\n } else {\n std::cout << "फ़ाइल नहीं मिली\\n";\n }\n return 0;\n}\n\nनिर्देशिकाएँ बनाना और हटाना
\n#include <filesystem>\nnamespace fs = std::filesystem;\n\nint main() {\n // एक निर्देशिका बनाना\n if (fs::create_directory("my_folder")) {\n std::cout << "फ़ोल्डर बनाया गया\\n";\n }\n\n // नेस्टेड निर्देशिकाएँ बनाना\n fs::create_directories("a/b/c");\n\n // खाली निर्देशिका हटाना\n fs::remove("my_folder");\n\n // सभी सामग्री सहित निर्देशिका हटाना (सावधानी!)\n // fs::remove_all("a");\n\n return 0;\n}\n\nनिर्देशिका की सामग्री को पुनरावृत्त करना
\n#include <iostream>\n#include <filesystem>\nnamespace fs = std::filesystem;\n\nint main() {\n std::string path = ".";\n for (const auto& entry : fs::directory_iterator(path)) {\n if