首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 檔案與資料流操作練習題與解答(六):Directory、File、資料流核心類別

     編輯:關於C語言

練習 1:檔案與資料流的差異與關聯

  • 檔案:儲存於媒體(硬碟、光碟)的有序位元組集合,具名稱、路徑、建立時間、權限等屬性,以樹狀目錄組織。
  • 資料流:位元組序列的抽象概念,統一檔案、網路通訊管道、記憶體、TCP/IP Socket 等輸入輸出來源。提供「向後備存儲寫入/讀取位元組」的通用介面。
  • 關聯:FileStream 同時實現檔案與資料流雙重身分;資料流是操作檔案內容的管道。

練習 2:Directory 類別主要功能與方法

功能方法
建立目錄(含中繼路徑)CreateDirectory
刪除目錄Delete
移動/重命名目錄Move
判斷目錄是否存在Exists
取得目前工作目錄GetCurrentDirectory
取得目錄下檔案名稱GetFiles
取得/設定建立、存取、寫入時間GetCreationTime / SetCreationTime 等

練習 3:綜合應用 Directory 方法

流程:檢查路徑是否存在 → 不存在則建立 → 存在則刪除 → 移動目錄 → 建立檔案 → 統計檔案數。

using System;
using System.IO;

class Test
{
    public static void Main()
    {
        string path = @"c:\MyDir";
        string target = @"c:\TestDir";
        try
        {
            if (!Directory.Exists(path))
                Directory.CreateDirectory(path);

            if (Directory.Exists(target))
                Directory.Delete(target, true); // 遞迴刪除

            Directory.Move(path, target);
            File.CreateText(target + @"\myfile.txt").Close();

            Console.WriteLine("在 {0} 中的檔案數目是 {1}", target, Directory.GetFiles(target).Length);
        }
        catch (Exception e)
        {
            Console.WriteLine("操作失敗: {0}", e);
        }
    }
}

練習 4:檔案複製並允許覆寫同名檔案

using System;
using System.IO;

class Test
{
    public static void Main()
    {
        string src = @"c:\temp\MyTest.txt";
        string dest = src + "temp";
        try
        {
            using (FileStream fs = File.Create(src)) { } // 建立來源檔
            File.Delete(dest); // 確保目標不存在
            File.Copy(src, dest);
            Console.WriteLine("{0} 複製到:{1}", src, dest);
            File.Copy(src, dest, true); // true = 允許覆寫
            Console.WriteLine("第二次複製成功");
        }
        catch
        {
            Console.WriteLine("重複複製不允許(未指定覆寫時)");
        }
    }
}

練習 5:使用 File 類別刪除目前目錄下所有檔案

using System;
using System.IO;

class FileTest
{
    public static void Main()
    {
        Console.WriteLine("確認刪除目前目錄下所有檔案? (Y/N)");
        int key = Console.Read();
        if (key != 'Y' && key != 'y')
        {
            Console.WriteLine("使用者取消操作");
            return;
        }

        Console.WriteLine("正在刪除檔案...");
        DirectoryInfo dir = new DirectoryInfo(".");
        foreach (FileInfo f in dir.GetFiles())
            f.Delete();
    }
}
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved