السلطان
  1. الرئيسية
  2. الأمثلة
  3. الملفات

إنشاء أدلة متداخلة وسردها واجتيازها ثم حذف الشجرة

fs/directories.sn
// إنشاء أدلة متداخلة وسردها واجتيازها ثم حذف الشجرة.
استورد std.io.println;
استورد std.text.number;
استورد std.fs.walk;
استورد std.fs.directory;
استورد std.fs.write_file;

عرف الرئيسية(): عدد {
    دع الجذر: نص = "sultanc-example-tree";
    دع المتداخل: نص = "sultanc-example-tree/a/b";
    دع الملف: نص = "sultanc-example-tree/a/note.txt";
    دع المحتوى: نص = "ملاحظة";
    طابق أنشئ_مسار_الدليل(&المتداخل) مع
    | نتيجة.خطأ(الرمز) -> { أرجع الرمز; }
    | نتيجة.نجح(_) -> { };
    طابق اكتب_الملف(&الملف, &المحتوى) مع
    | نتيجة.خطأ(الرمز) -> { أرجع الرمز; }
    | نتيجة.نجح(_) -> { };
    دع الأوسط: نص = "sultanc-example-tree/a";
    طابق اقرأ_مدخلات_الدليل(&الأوسط) مع
    | نتيجة.نجح(المدخلات) -> { اطبع_سطر(طبيعي_إلى_نص(الطول(المدخلات) مثل طبيعي)); }
    | نتيجة.خطأ(الرمز) -> { أرجع الرمز; };
    طابق اجتز_الشجرة(&الجذر) مع
    | نتيجة.نجح(كل_المدخلات) -> { اطبع_سطر(طبيعي_إلى_نص(الطول(كل_المدخلات) مثل طبيعي)); }
    | نتيجة.خطأ(الرمز) -> { أرجع الرمز; };
    طابق احذف_الشجرة(&الجذر) مع
    | نتيجة.نجح(_) -> { اطبع_سطر("حُذف"); }
    | نتيجة.خطأ(الرمز) -> { أرجع الرمز; };
    أرجع 0;
}

التشغيل

بالمفسر، دون ترجمة:

./build/sultanc run examples/ar/fs/directories.sn

أو ترجمه إلى ملف تنفيذي:

./build/sultanc examples/ar/fs/directories.sn -o build/example && ./build/example

المصدر على GitHub   كل الأمثلة