[C#.NET][VB.NET] System.IO 檔案系統類別 - FileInfo / DirectoryInfo / DriveInfo / Path
在System.IO有一組類別是用來操作檔案、目錄、磁碟。在C#語言下路徑指定方式有兩種,
第一種是使用兩個斜線,例如
"C:\\Test.txt"
第二種是在路徑前加上@符號,例如
@"C:\Test.txt"
但在VB語言下使用,困擾就沒有太多,就像我們一般在瀏覽磁碟一樣
"C:\Test.txt"
匯入命名空間System.IO
C#
using System.IO
VB
Imports System.IO
FileSystemInfo類別,提供一些基本功能給所有資訊提示的系統類別,大部份的提示類別都繼承於它,主要是為 FileInfo 和 DirectoryInfo 物件提供基底類別。
FileInfo類別,存取及操作單一檔案基本功能,現在就來談談如何使用FileInfo類別,以下的簡易範例應該能夠讓看倌瞭解使用FileInfo類別的步驟。
EX:取得檔案資訊
private void button1_Click(object sender, EventArgs e)
{
//引用類別
FileInfo myInfo = new FileInfo(@"C:\newfile.txt");
//判斷檔案是否存在
if (myInfo.Exists)
{
//輸出檔名
Console.WriteLine("FileName:{0}", myInfo.Name);
//輸出路徑
Console.WriteLine("Path:{0}", myInfo.FullName);
}
}
EX:複製檔案
private void button2_Click(object sender, EventArgs e)
{
//引用類別
FileInfo myInfo = new FileInfo(@"C:\newfile.txt");
//判斷檔案是否存在
if (myInfo.Exists)
{
//複製檔案
myInfo.CopyTo(@"C:\newfile.bak");
}
}
DirectoryInfo類別,提供存取和操作單一目錄的基本功能
EX:列舉目錄中的檔案
private void button3_Click(object sender, EventArgs e)
{
//引用類別
DirectoryInfo myDir = new DirectoryInfo(@"C:\Windows");
//列舉目錄中的檔案
foreach (FileInfo myFile in myDir.GetFiles())
{
//輸出檔名
Console.WriteLine("File:{0}", myFile.Name);
}
}
EX:列舉目錄中的子目錄
private void button4_Click(object sender, EventArgs e)
{
//引用類別
DirectoryInfo myDir = new DirectoryInfo(@"C:\Windows");
//列舉目錄中的子目錄
foreach (DirectoryInfo myFile in myDir.GetDirectories())
{
//輸出資料夾名
Console.WriteLine("File:{0}", myFile.Name);
}
}
DriveInfo類別,提供磁區存取的資訊
EX:列舉磁區資訊
private void button5_Click(object sender, EventArgs e)
{
//引用類別
DriveInfo[] allDrives = DriveInfo.GetDrives();
//列舉所有磁區資訊
foreach (DriveInfo myDri in allDrives)
{
Console.WriteLine("磁碟名稱: {0}", myDri.Name);
Console.WriteLine("磁碟類型: {0}", myDri.DriveType);
//磁碟是否就緒
if (myDri.IsReady)
{
Console.WriteLine(
" 磁區標籤: {0}", myDri.VolumeLabel);
Console.WriteLine(
" 系統名稱: {0}", myDri.DriveFormat);
Console.WriteLine(
" 磁碟容量: {0} bytes ", myDri.TotalSize);
Console.WriteLine(
" 使用空間: {0} bytes ", myDri.TotalSize - myDri.AvailableFreeSpace);
Console.WriteLine(
" 可用空間: {0} bytes", myDri.AvailableFreeSpace);
}
}
}
Path類別,提供操作檔案路徑的方法
EX:由暫存區演示路徑
private void button6_Click(object sender, EventArgs e)
{
//在磁碟上建立具命之零位元組的唯一暫存檔案
//http://msdn.microsoft.com/zh-tw/library/system.io.path.gettempfilename(VS.80).aspx
string myPath = Path.GetTempFileName();
//string myPath = Path.GetRandomFileName();
//引用類別
FileInfo myInfo = new FileInfo(myPath);
//判斷檔案是否存在
if (myInfo.Exists)
{
Console.WriteLine("暫存區為 : {0}", Path.GetTempPath());
Console.WriteLine("副檔名為 : {0}", Path.GetExtension(myPath));
Console.WriteLine("檔案名稱 : {0}", Path.GetFileName(myPath));
Console.WriteLine("絕對路徑 : {0}", Path.GetFullPath(myPath));
Console.WriteLine("無副檔名 : {0}", Path.GetFileNameWithoutExtension(myPath));
}
}
範例下載:C# System.IO.rar
若有謬誤,煩請告知,新手發帖請多包涵
Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET