کلاسهای File و Directory، شامل متدهای static متفاوتی برای کار با file ها، directory ها و subdirectory ها است. این کلاسها در فضای نام System.IO وجود دارند. بنابراین اجازه بدید تا تعدادی از پرکاربردترین متدهای هر دو کلاس را مورد بررسی قرار دهیم.
این مقاله، سرفصلی از دوره آموزشی زیر میباشد:
- راه اندازی محیط توسعه
- Data Type ها، Declaration ها و تعریف متغیرها در #C
- عملگرها در #c
- تبدیل نوع های داده ای
- ورودی و خروجی در #c
- کار با رشته ها
- شرطها در #c
- حلقه ها (While، Do-While، For)
- مدیریت خطاها
- Access Modifier ها
- متدها
- کلمات کلیدی Ref و Out
- بازگشت و متدهای بازگشتی
- آرایه ها (آرایه های تک بعدی و چند بعدی)
- کار با فایلها، StreamWriter و StreamReader
- کار با فایلها، File و Directory
اگر می خواهید محتویات کامل این دوره را ببینید ، می توانید بر روی لینک مبانی #c کلیک کنید.
متدهای File
WriteAllText(string path, string contents)
یک فایل جدید ایجاد میکند و content را داخل آن مینویسد. اگر فایل مورد نظر از قبل در مسیر مورد نظر وجود داشته باشد، سپس آن را overwrite میکند:
1 2 3 |
string path = @"C:\FileExamples\test.txt"; string content = "Example content as a string message"; File.WriteAllText(path, content); |
WriteAllLines(string path, string[] contents)
یک فایل جدید ایجاد میکند و یک آرایه رشته ای مشخص شده را در آن مینویسد، سپس فایل را میبندد:
1 2 3 |
string path = @"C:\FileExamples\WriteAllLines.txt"; string[] contentArray = new string[3] { "Example content as a string message", "Another string text", "The last string" }; File.WriteAllLines(path, contentArray); |
ReadAllText(string path)
فایل را در مسیر مشخص شده باز میکند، تمام خطها را در قالب یک رشته میخواند و سپس فایل را میبندد:
1 2 3 |
string path = @"C:\FileExamples\WriteAllLines.txt"; string readAllText = File.ReadAllText(path); Console.WriteLine(readAllText); |
ReadAllLines(string path)
یک فایل متنی را باز میکند، تمام خطوط را در قالب یک آرایه رشته ای میخواند و سپس فایل را میبندد:
1 2 3 4 5 6 |
string path = @"C:\FileExamples\WriteAllLines.txt"; string[] readAllLines = File.ReadAllLines(path); foreach (string line in readAllLines) { Console.WriteLine(line); } |
Delete(string path)
فایل مشخص شده را حذف میکند:
1 2 |
string path = @"C:\FileExamples\test.txt"; File.Delete(path); |
Move(string sourceFileName, string destFileName)
یک فایل مشخص شده را به یک مکان جدید انتقال میدهد:
1 2 3 4 5 6 7 8 9 |
string path = @"C:\FileExamples\test.txt"; string moveToPath = @"C:\FileMoveExamples\MovedFile.txt"; if(File.Exists(moveToPath)) //if the file on the target location exists, we need to remove it first. { File.Delete(moveToPath); } File.Move(path, moveToPath); |
AppendAllText(string path, string contents)
یک فایل را باز میکند، content را به محتویات فایل اضافه میکند و سپس فایل را میبندد. اگر فایل از قبل وجود نداشته باشد آن را ایجاد میکند و content را داخل آن مینویسد و فایل را میبندد. در صورتی که بخواهیم بدون override کردن فایل قبلی، content جدید را به محتوای فایل اضافه کنیم، استفاده از این متد مفید میباشد:
1 2 3 |
string path = @"C:\FileExamples\test.txt"; string content = "Append this content as a string message" + Environment.NewLine; File.AppendAllText(path, content); |
AppendAllLines(string path, IEnumerable<string> contents)
خطوط را به محتویات فایل اضافه میکند و سپس فایل را میبندد:
1 2 3 |
string path = @"C:\FileExamples\test.txt"; string[] content = new string[2] { "Append this content as a string message", "Another text line" }; File.AppendAllLines(path, content); |
متدهای Directory
CreateDirectory(string path)
دایرکتوری ها و زیردایکرتوری ها را در مکان مشخص شده ایجاد می کند مگر اینکه آن دایرکتوری از قبل وجود داشته باشد. این متد، آبجکت DirectoryInfo را برای دایرکتوری موجود برمیگرداند:
1 2 3 |
string path = @"C:\DirectoryExample\SubDir1\SubDir2"; DirectoryInfo di = Directory.CreateDirectory(path); Console.WriteLine($"Full name: {di.FullName}, Name: {di.Name}, Parent: {di.Parent} ..."); |
Delete(string path)
یک دایرکتوری خالی را از مسیر مشخص شده حذف میکند:
1 2 |
string path = @"C:\DirectoryExample\SubDir1\SubDir2"; Directory.Delete(path); |
Delete(string path, bool recursive)
دایرکتوری مشخص شده را حذف میکند و چنانچه پارامتر recursive
با true مقداردهی شود در نتیجه تمام زیردایکتوری ها و فایلهای موجود در آن دایرکتوری را نیز حذف میکند:
1 2 |
string path = @"C:\DirectoryExample"; Directory.Delete(path, true); |
Move(string sourceDirName, string destDirName)
یک فایل یا دایکتوری را به همراه محتواهایش به یک مکان جدید انتقال میدهد:
1 2 3 |
string path = @"C:\DirectoryExample"; string moveTo = @"C:\MoveDirectory"; Directory.Move(path, moveTo); |
نتیجه گیری
بسیار عالی. با این مقاله، ما اصول پایه #c را به پایان رساندیم. در بخش بعدی، ما در مورد مفاهیم شی گرایی در #c و نحوه بکارگیری آن در کدهایمان صحبت خواهیم کرد.