עבודה עם מערכת הקבצים
- 3 דקות
.NET מכיל סוגים מוכללים לעבודה עם מערכת הקבצים שניתן למצוא System.IO שמות.
כאן, תלמד אודות הסוגים הזמינים ב- System.IO באמצעות C# כדי לקרוא מערכת קבצים כדי לגלות קבצים וספריות.
התרחיש
משווקים גדולים כותבים לעתים קרובות נתונים לקבצים כדי שניתן יהיה לעבד אותם מאוחר יותר באצוות.
Tailwind Traders כולל כל אחת מהחנויות שלו כותבות את סך המכירות שלו לקובץ ושולחות קובץ זה למיקום מרכזי. כדי להשתמש בקבצים אלה, החברה צריכה ליצור תהליך אצווה אשר יכול לעבוד עם מערכת הקבצים.
כלול את System.IO השמות
מרחב System.IO מכיל סוגים מוכללים המאפשרים לך לקיים אינטראקציה עם קבצים וספריות. לדוגמה, באפשרותך לאחזר אוספים של קבצים וספריות בהתבסס על קריטריוני חיפוש get ומאפיינים set עבור קבצים וספריות. באפשרותך גם להשתמש System.IO שמות אלה כדי לקרוא ולכתוב קבצים וזרמים של נתונים באופן סינכרוני ואסינכרוני.
בשלב זה, אנו נתמקד במה שעליך לדעת כדי לעבוד עם ספריות באמצעות המחלקה Directory הכלולה System.IO שמות. מחלקת מדריך הכתובות חושפת שיטות סטטיות ליצירה, העברה וספירה באמצעות ספריות וספריות משנה.
פרט את כל ספריות
המחלקה Directory משמשת לעתים קרובות ליצירת רשימה (או ספירת) . לדוגמה, מבנה הקובץ Tailwind Traders כולל תיקיית בסיס הנקראת אחסון. בתיקיה זו נמצאות תיקיות משנה המאורגנות לפי מספר חנות, ובתוך תיקיות אלה נמצאות קבצי המכירות הכוללות וקבצי המלאי. המבנה נראה כך:
📂 stores
📄 sales.json
📄 totals.txt
📂 201
📄 sales.json
📄 salestotals.json
📄 inventory.txt
📂 202
כדי לקרוא ול פרט את שמות הספריות ברמה העליונה, השתמש בפונקציה Directory.EnumerateDirectories העליונה.
IEnumerable<string> listOfDirectories = Directory.EnumerateDirectories("stores");
foreach (var dir in listOfDirectories) {
Console.WriteLine(dir);
}
// Outputs:
// stores/201
// stores/202
פרט קבצים בספריה ספציפית
כדי להציג רשימה של כל הקבצים במדריך כתובות, באפשרותך להשתמש בפונקציה Directory.EnumerateFiles שלך.
IEnumerable<string> files = Directory.EnumerateFiles("stores");
foreach (var file in files)
{
Console.WriteLine(file);
}
// Outputs:
// stores/totals.txt
// stores/sales.json
פרט את כל התוכן במדריך כתובות וכל הספריות המשנה
הן הפונקציות Directory.EnumerateDirectories והן Directory.EnumerateFiles מכילות עומס יתר המקבל פרמטר כדי לציין כי יש להתאים קבצים וספריות של תבניות חיפוש.
יש להם גם עומס יתר נוסף שמקבל פרמטר כדי לציין אם לעבור רקורסיבית בתיקיה שצוינה ובכול תיקיות המשנה שלה.
// Find all *.txt files in the stores folder and its subfolders
IEnumerable<string> allFilesInAllFolders = Directory.EnumerateFiles("stores", "*.txt", SearchOption.AllDirectories);
foreach (var file in allFilesInAllFolders)
{
Console.WriteLine(file);
}
// Outputs:
// stores/totals.txt
// stores/201/inventory.txt
בתרגיל הבא, אתה משתמש בכיתה Directory כדי לקרוא באופן דינאמי דרך tailwind Traders' הראשי stores directory כדי למצוא את כל sales.json הקבצים.
בדוק את הידע שלך
משוב
האם עמוד זה היה מועיל?
לא
זקוק לעזרה בנושא זה?
רוצה לנסות להשתמש ב'שאל את Learn' כדי להבהיר או להדריך אותך בנושא זה?