FileStream 同時實現檔案與資料流雙重身分;資料流是操作檔案內容的管道。| 功能 | 方法 |
|---|---|
| 建立目錄(含中繼路徑) | CreateDirectory |
| 刪除目錄 | Delete |
| 移動/重命名目錄 | Move |
| 判斷目錄是否存在 | Exists |
| 取得目前工作目錄 | GetCurrentDirectory |
| 取得目錄下檔案名稱 | GetFiles |
| 取得/設定建立、存取、寫入時間 | GetCreationTime / SetCreationTime 等 |
流程:檢查路徑是否存在 → 不存在則建立 → 存在則刪除 → 移動目錄 → 建立檔案 → 統計檔案數。
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);
}
}
}
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("重複複製不允許(未指定覆寫時)");
}
}
}
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();
}
}