العمل مع نظام الملفات في لغة C++: دليل شامل للمبتدئين

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

العمل مع نظام الملفات في لغة C++: للمبتدئين



العمل مع نظام الملفات هو أحد المهام الأساسية لأي مبرمج. في لغة C++، توجد عدة طرق للتفاعل مع الملفات والمجلدات: بدءًا من التدفقات الكلاسيكية fstream وصولاً إلى std::filesystem الحديث (C++17). في هذه المقالة، سنشرح العمليات الأساسية: قراءة وكتابة الملفات، التحقق من وجودها، إنشاء وحذف المجلدات، بالإضافة إلى التنقل في نظام الملفات. جميع الأمثلة البرمجية مكتوبة بلغة C++ ومناسبة للمبتدئين.



1. أساسيات العمل مع الملفات عبر fstream



الفئات ifstream (إدخال من ملف)، ofstream (إخراج إلى ملف)، و fstream (إدخال/إخراج) هي أدوات أساسية للعمل مع الملفات النصية والثنائية. توجد في ملف الرأس <fstream>.



قراءة من ملف

لقراءة البيانات من ملف، قم بإنشاء كائن ifstream وافتح الملف. تأكد من وجود الملف، وإلا سيكون التدفق في حالة خطأ.



#include <iostream>#include <fstream>#include <string>

int main() { std::ifstream file("example.txt"); if (!file.is_open()) { std::cerr << "خطأ في فتح الملف"; return 1; }

std::string line; while (std::getline(file, line)) { std::cout << line << std::endl; }

file.close(); return 0;}


الكتابة إلى ملف

للكتابة، استخدم ofstream. إذا لم يكن الملف موجودًا، سيتم إنشاؤه. إذا كان موجودًا، سيتم استبدال المحتوى (ما لم يتم تحديد العلم std::ios::app).



#include <fstream>

int main() { std::ofstream file("output.txt"); if (!file.is_open()) { std::cerr << "فشل إنشاء الملف"; return 1; }

file << "Hello, world!"; file << "نظام الملفات C++";

file.close(); return 0;}


إضافة بيانات إلى نهاية الملف

استخدم العلم std::ios::app (إلحاق) لإضافة بيانات إلى النهاية دون حذف البيانات السابقة.



std::ofstream file("log.txt", std::ios::app);file << "إدخال جديد";file.close();


2. العمل مع المجلدات ونظام الملفات (C++17)



بدءًا من C++17، تتضمن المكتبة القياسية ملف الرأس <filesystem> الذي يوفر واجهة مريحة ومتعددة المنصات للعمل مع نظام الملفات. لاستخدامه، أضف علم التجميع -std=c++17 (أو أعلى) وقم بتضمين <filesystem>.



التحقق من وجود ملف أو مجلد

#include <iostream>#include <filesystem>namespace fs = std::filesystem;

int main() { fs::path p = "example.txt"; if (fs::exists(p)) { std::cout << "الملف موجود"; std::cout << "الحجم: " << fs::file_size(p) << " بايت"; } else { std::cout << "الملف غير موجود"; } return 0;}


إنشاء وحذف المجلدات

#include <filesystem>namespace fs = std::filesystem;

int main() { // إنشاء مجلد واحد if (fs::create_directory("my_folder")) { std::cout << "تم إنشاء المجلد"; }

// إنشاء مجلدات متداخلة fs::create_directories("a/b/c");

// حذف مجلد فارغ fs::remove("my_folder");

// حذف مجلد بكل محتوياته (بحذر!) // fs::remove_all("a");

return 0;}


التكرار على محتويات مجلد

#include <iostream>#include <filesystem>namespace fs = std::filesystem;

int main() { std::string path = "."; for (const auto& entry : fs::directory_iterator(path)) { if

المدونات

توصيات الكتب