.NET Framework 檔案 I/O 和檔案系統基本概念
更新:2007 年 11 月
System.IO 命名空間 (Namespace) 會包含 File 和 Directory 類別,提供管理檔案和目錄的 .NET Framework 功能。因為這些物件的方法是靜態 (Static) 或共用成員,所以您可以直接使用它們,而不需要先建立類別的執行個體。與這些類別相關聯的是 FileInfo 和 DirectoryInfo 類別,使用者將會熟悉這兩種類別的 My 功能。若要使用這些類別,您必須使名稱完全符合規定,或是在受到影響之程式碼的開頭處包含 Imports 陳述式 (Statement),藉以匯入適當的命名空間。如需詳細資訊,請參閱 Imports 陳述式 (.NET 命名空間和型別)。
資料流的定義
.NET Framework 使用資料流支援讀取檔案或寫入檔案。您可以將資料流想成是一組一維的連續資料,它有開頭和結尾,其中的游標會在資料流中指示目前的位置。
資料流作業
包含在資料流中的資料可能來自記憶體、檔案或 TCP/IP 通訊端 (Socket)。資料流具有可以套用至它們本身的基礎作業:
讀取:您可以從資料流中讀取,將資料從資料流傳輸到資料結構中 (例如,字串或位元組陣列)。
寫入:您可以寫入資料流,將資料從資料來源傳輸到資料流中。
尋找:您可以在資料流中查詢與修改所在位置。
如需詳細資訊,請參閱撰寫資料流。
資料流的型別
在 .NET Framework 中,是以 Stream 類別表示資料流,此類別會為其他的資料流形成抽象類別 (Abstract Class)。您不能直接建立 Stream 類別的執行個體,但必須使用它實作的其中一個類別。
資料流的型別有許多種,但針對使用檔案輸入/輸出 (I/O) 的用途來說,最重要的型別是 FileStream 類別 (此類別提供讀取檔案和寫入檔案的方法),以及 IsolatedStorageFileStream 類別 (此類別提供在隔離儲存區 (Isolated Storage) 中建立檔案與目錄的方法)。使用檔案 I/O 時可以使用的其他資料流包括:
下表會列出一般是由資料流完成的工作:
若要 |
請參閱 |
---|---|
讀取和寫入資料檔案 |
|
讀取 XML 檔案 |
|
建立資料流寫入器,將文字寫入檔案 |
|
讀取檔案中的文字 |
|
將文字寫入檔案 |
|
讀取字串中的字元 |
|
將字元寫入字串 |
|
加密資料 |
|
解密資料 |
檔案存取和屬性
您可以控制以 FileAccess、FileMode 和 FileShare 列舉型別 (Enumeration) 建立、開啟與共用檔案的方式,其中的列舉型別包括 FileStream 類別之建構函式 (Constructor) 所使用的旗標。例如,開啟或建立新的 FileStream 時,FileMode 列舉型別可以讓您指定是否要開啟檔案用於附加、若指定的檔案不存在是否要建立檔案、是否要覆寫檔案等等。
FileAttributes 列舉型別可以收集特定檔案的資訊。FileAttributes 列舉型別會傳回檔案的儲存屬性,例如,檔案是否為壓縮檔案、加密檔案、隱藏檔案、唯讀檔案、封存檔案、目錄、系統檔案,或是暫存檔案。
下表會列出包含檔案存取與檔案屬性的工作:
若要 |
請參閱 |
---|---|
開啟並將文字附加到記錄檔 |
|
判斷檔案的屬性 |
檔案使用權限
可以利用 FileIOPermission 類別控制檔案和目錄的存取權。這對於使用 Web Form 的開發人員可能特別重要,根據預設,Web Form 是在名為 ASPNET 的特殊本機使用者內容下執行,而 ASPNET 是 ASP.NET 和 .NET Framework 安裝時所建立的使用者。當這類應用程式要求存取資源時,ASPNET 使用者帳戶具備有限的使用權限,這可以防止使用者執行像是自 Web 應用程式寫入檔案的動作。如需詳細資訊,請參閱安全性權限、要求使用權限和 FileIOPermission 類別。
下表會列出關於檔案使用權限的工作。
若要 |
請參閱 |
---|---|
要求最低的使用權限 |
|
要求選擇性使用權限 |
|
拒絕使用權限 |
|
要求內建使用權限 |
|
要求 XML 編碼的使用權限 |
隔離的檔案儲存區
隔離儲存區是用於解決使用檔案時所造成之問題的一種嘗試,其中該檔案的使用者或程式碼可能缺少必要的使用權限。隔離儲存區會指派資料區間給每一個使用者,而此資料區間可以保留一或多個存放區。可以依使用者或組件 (Assembly) 互相隔離每一個存放區。只有建立存放區的使用者與組件具有該存放區的存取權。存放區如同完整的虛擬檔案系統,在一個存放區中,您可以建立和管理目錄與檔案。
下表會列出通常與隔離的檔案儲存區相關聯的工作。
若要 |
請參閱 |
---|---|
建立隔離的存放區 |
|
列舉隔離的存放區 |
|
刪除隔離的存放區 |
|
在隔離儲存區中建立檔案或目錄 |
|
在隔離儲存區中尋找檔案 |
|
在隔離儲存區中讀取或寫入檔案 |
|
在隔離儲存區中刪除檔案或目錄 |
檔案事件
FileSystemWatcher 元件可以讓您在系統或是具有網路存取權的任何電腦上,監看檔案及目錄的變更。例如,如果檔案已修改,則您可能想傳送警示給使用者,以通知使用者已發生變更。發生變更時,會引發一或多個事件、儲存在緩衝區中,然後傳遞至 FileSystemWatcher 元件進行處理。如需詳細資訊,請參閱回應檔案系統事件。
若要 |
請參閱 |
---|---|
為檔案系統事件建立處理常式 |
|
設定 FileSystemWatcher 元件執行個體 |
請參閱
概念
用於 .NET Framework 檔案 I/O 和檔案系統的類別