Rust में फ़ाइल सिस्टम के साथ काम करना: व्यावहारिक गाइड

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Rust में फ़ाइल सिस्टम के साथ काम करना: व्यावहारिक रूप से

\n\n

Rust एक आधुनिक सिस्टम प्रोग्रामिंग भाषा है जो उच्च प्रदर्शन और मेमोरी सुरक्षा को जोड़ती है। हर डेवलपर के सामने आने वाली एक मुख्य चुनौती है फ़ाइल सिस्टम के साथ काम करना। इस लेख में, हम व्यावहारिक उदाहरणों के साथ समझेंगे कि Rust में फ़ाइलों को कैसे पढ़ें और लिखें, डायरेक्ट्रीज़ बनाएँ, एरर को हैंडल करें और अन्य फ़ाइल सिस्टम ऑपरेशन करें।

\n\n

फ़ाइल सिस्टम के लिए मुख्य मॉड्यूल

\n\n

Rust में फ़ाइल सिस्टम से जुड़ा सारा काम स्टैंडर्ड लाइब्रेरी में केंद्रित है। मुख्य मॉड्यूल हैं:

\n\n
    \n
  • std::fs — फ़ाइलों और डायरेक्ट्रीज़ के साथ काम करने के फंक्शन (पढ़ना, लिखना, बनाना, हटाना)।
  • \n
  • std::path — पथों के साथ काम करना (Path, PathBuf)।
  • \n
  • std::io — इनपुट-आउटपुट, जिसमें Read और Write ट्रेट्स शामिल हैं।
  • \n
\n\n

शुरू करने के लिए, बस ज़रूरी मॉड्यूल को इम्पोर्ट करें:

\n\n
use std::fs;\nuse std::path::Path;\nuse std::io::prelude::*;\nuse std::fs::File;
\n\n

Rust में फ़ाइलें पढ़ना

\n\n

पूरी फ़ाइल को एक बार में पढ़ने का सबसे आसान तरीका है fs::read_to_string फंक्शन का उपयोग करना। यह Result<String> लौटाता है, जिससे एरर को आसानी से हैंडल किया जा सकता है।

\n\n
use std::fs;\n\nfn main() {\n    let file_path = "example.txt";\n    \n    match fs::read_to_string(file_path) {\n        Ok(content) => println!("फ़ाइल की सामग्री:\\n{}", content),\n        Err(e) => eprintln!("फ़ाइल पढ़ने में त्रुटि: {}", e),\n    }\n}
\n\n

अगर आपको फ़ाइल को लाइन दर लाइन पढ़ना है (जैसे बड़ी फ़ाइलों के लिए), तो BufReader का उपयोग करें:

\n\n
use std::fs::File;\nuse std::io::{BufRead, BufReader};\n\nfn main() {\n    let file = File::open("example.txt").expect("फ़ाइल खोलने में विफल");\n    let reader = BufReader::new(file);\n\n    for line in reader.lines() {\n        match line {\n            Ok(content) => println!("{}", content),\n            Err(e) => eprintln!("लाइन पढ़ने में त्रुटि: {}", e),\n        }\n    }\n}
\n\n

फ़ाइलों में डेटा लिखना

\n\n

फ़ाइल में डेटा लिखने के लिए fs::write (स्ट्रिंग लिखने का सरल तरीका) या File::create के साथ write! या writeln! का उपयोग करें।

\n\n
use std::fs;\n\nfn main() {\n    let content = "नमस्ते, दुनिया!\\nयह लिखने के लिए एक लाइन है।";\n    fs::write("output.txt", content).expect("फ़ाइल लिखने में त्रुटि");\n    println!("फ़ाइल सफलतापूर्वक लिखी गई");\n}
\n\n

क्रमिक लेखन या डेटा जोड़ने के लिए OpenOptions का उपयोग करें:

\n\n
use std::fs::OpenOptions;\nuse std::io::Write;\n\nfn main() {\n    let mut file = OpenOptions::new()\n        .append(true)  // फ़ाइल में जोड़ना\n        .create(true)  // अगर मौजूद नहीं है तो बनाएँ\n        .open("log.txt")\n        .expect("फ़ाइल खोलने में विफल");\n\n    writeln!(file, "लॉग में लिखा गया: {}", chrono::Local::now()).expect("लिखने में त्रुटि");\n}
\n\n

डायरेक्ट्रीज़ और पथों के साथ काम करना

\n\n

Rust डायरेक्ट्रीज़ बनाने, हटाने और उनमें घूमने के लिए सुविधाजनक साधन प्रदान करता है। आइए मुख्य ऑपरेशन देखें।

\n\n

डायरेक्ट्री बनाना और हटाना

\n\n
use std::fs;\n\nfn main() {\n    // एक डायरेक्ट्री बनाना\n    fs::create_dir("new_folder").expect("डायरेक्ट्री बनाने में त्रुटि");\n    \n    // नेस्टेड डायरेक्ट्रीज़ बनाना (mkdir -p के समान)\n    fs::create_dir_all("parent/child/grandchild").expect("नेस्टेड डायरेक्ट्री बनाने में त्रुटि");\n    \n    // खाली डायरेक्ट्री हटाना\n    fs::remove_dir("new_folder").expect("डायरेक्ट्री हटाने में त्रुटि");\n    \n    // सभी सामग्री सहित डायरेक्ट्री हटाना\n    fs::remove_dir_all("parent").expect("सामग्री सहित डायरेक्ट्री हटाने में त्रुटि");\n}
\n\n

डायरेक्ट्री की सामग्री देखना

\n\n

डायरेक्ट्री में फ़ाइलों की सूची प्राप्त करने के लिए:

ब्लॉग

पुस्तक अनुशंसाएँ