C# - 檔案輸入/輸出:初學者指南

你好啊,未來的編程超級巨星!今天,我們將要踏上一段令人興奮的旅程,進入 C# 的檔案輸入/輸出(I/O)世界。別擔心如果你之前從未寫過一行代碼——我將成為你的友好指導者,我們將一起逐步克服這個挑戰。所以,拿起你喜歡的飲料,放鬆身心,我們一起來投入這個領域吧!

C# - File I/O

了解檔案 I/O

在我們深入細節之前,讓我們先來討論一下檔案 I/O 實際上意味著什麼。想像你有一本日記。當你寫東西進去時,你是在進行輸出。當你稍後讀取它時,那就是輸入。編程中的檔案 I/O 運作原理類似——它都是關於讀取和寫入你電腦上的檔案。

C# I/O 類別

C# 為我們提供了一整套出色的工具箱來操作檔案。這些工具以類別的形式存在,就像具有各自獨特技能的專業工人。讓我們來認識一下我們的檔案處理朋友:

類別 描述
File 一個提供基本檔案操作的靜態類別
FileInfo 提供創建、複製、刪除、移動和打開檔案的實例方法
Directory 一個靜態類別,用於創建、移動和枚舉目錄和子目錄
DirectoryInfo 與 Directory 相似,但提供實例方法
Path 對包含檔案或目錄路徑信息的 String 实例進行操作

如果這些看起來很多——別擔心,我們現在只需關注最重要的幾個。

File 類別:你的瑞士軍刀

File 類別就像是檔案操作的瑞士軍刀。它可以做很多事情!讓我們看看它是如何工作的:

using System;
using System.IO;

class Program
{
static void Main()
{
// 寫入檔案
File.WriteAllText("hello.txt", "Hello, World!");

// 從檔案讀取
string content = File.ReadAllText("hello.txt");
Console.WriteLine(content);
}
}

在這個例子中,我們將 "Hello, World!" 寫入名為 "hello.txt" 的檔案,然後再讀取回來。就是這麼簡單!File 類別為我們處理了所有幕後工作。

FileStream 類別:為了更多控制

有時候,你需要對你的檔案操作有更多的控制。這就是 FileStream 登場的地方。它就像是一條直接連接到你的檔案的管道。讓我們看看它是如何工作的:

using System;
using System.IO;

class Program
{
static void Main()
{
string path = "myfile.txt";

// 使用 FileStream 寫入檔案
using (FileStream fs = File.Create(path))
{
byte[] info = new System.Text.UTF8Encoding(true).GetBytes("Hello, FileStream!");
fs.Write(info, 0, info.Length);
}

// 使用 FileStream 從檔案讀取
using (FileStream fs = File.OpenRead(path))
{
byte[] b = new byte[1024];
UTF8Encoding temp = new UTF8Encoding(true);
while (fs.Read(b,0,b.Length) > 0)
{
Console.WriteLine(temp.GetString(b));
}
}
}
}

這可能看起來有點複雜,但別擔心!我們只是將 "Hello, FileStream!" 寫入一個檔案然後讀取回來。using 語句確保我們的 FileStream 在使用完畢後正確關閉——這就像洗手後確保關閉水龍頭一樣!

C# 中的進階檔案操作

現在我們已經掌握了基本知識,讓我們來看看一些更進階的操作:

檢查檔案是否存在

在我們對檔案進行任何操作之前,通常最好先檢查它是否存在:

string path = @"C:\Users\YourName\Documents\myfile.txt";
if (File.Exists(path))
{
Console.WriteLine("這個檔案存在!");
}
else
{
Console.WriteLine("這個檔案不存在。");
}

複製檔案

需要複製一個檔案嗎?C# 可以幫你做到:

string sourceFile = @"C:\Users\YourName\Documents\original.txt";
string destinationFile = @"C:\Users\YourName\Documents\copy.txt";

File.Copy(sourceFile, destinationFile, true);

這裡的 true 參數意味著如果我們已經存在目標檔案,我們將會覆蓋它。

移動檔案

移動檔案同樣簡單:

string sourceFile = @"C:\Users\YourName\Documents\fileToMove.txt";
string destinationFile = @"C:\Users\YourName\Desktop\movedFile.txt";

File.Move(sourceFile, destinationFile);

刪除檔案

如果你需要刪除一個檔案:

string fileToDelete = @"C:\Users\YourName\Documents\unwantedFile.txt";
File.Delete(fileToDelete);

請謹慎使用這個操作——C# 中沒有回收站!

總結

恭喜你!你已經邁出了進入 C# 檔案 I/O 世界的第一步。我們已經涵蓋了很多內容,從基本的讀寫到更進階的操作。記住,熟練需要練習,所以不要害怕嘗試這些概念。

在我多年的教學經驗中,我發現最好的學習方式就是實踐。所以這裡有一個小挑戰給你:試著創建一個簡單的記事應用程序,它能夠將筆記保存到檔案中並讀取回來。這是一個將我們學到的所有知識投入實踐的絕佳機會!

並且永遠記住:在編程中,正如在生活中,犯錯是正常的。這是我們學習和成長的方式。所以繼續編程,繼續探索,最重要的是,享受樂趣!

直到下次見,快樂編程!

Credits: Image by storyset