// إنشاء أدلة متداخلة وسردها واجتيازها ثم حذف الشجرة.
استورد 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;
}// Creating nested directories, listing and walking them, then removing the tree.
import std.io.println;
import std.text.number;
import std.fs.walk;
import std.fs.directory;
import std.fs.write_file;
def main(): int {
let root: string = "sultanc-example-tree";
let nested: string = "sultanc-example-tree/a/b";
let file: string = "sultanc-example-tree/a/note.txt";
let content: string = "note";
match create_dir_all(&nested) with
| result.err(code) -> { return code; }
| result.ok(_) -> { };
match write_file(&file, &content) with
| result.err(code) -> { return code; }
| result.ok(_) -> { };
let middle: string = "sultanc-example-tree/a";
match list_directory(&middle) with
| result.ok(entries) -> { println(uint_to_text(length(entries) as uint)); }
| result.err(code) -> { return code; };
match walk(&root) with
| result.ok(all_entries) -> { println(uint_to_text(length(all_entries) as uint)); }
| result.err(code) -> { return code; };
match remove_tree(&root) with
| result.ok(_) -> { println("removed"); }
| result.err(code) -> { return code; };
return 0;
}
التشغيل
بالمفسر، دون ترجمة:
./build/sultanc run examples/ar/fs/directories.snأو ترجمه إلى ملف تنفيذي:
./build/sultanc examples/ar/fs/directories.sn -o build/example && ./build/example