C#文件IO操作

一、文件系統概述
   
計算機系統的重要作用之一是能快速處理大量信息,因此數據的組織和存取成爲一個極爲重要的內容。文件是信息的一種組織形式,而文件系統的的目標就是提高存儲器的利用率,接受用戶的委託實施對文件的操作。
     
文件系統是操作系統的一個重要組成部分。文件系統所要解決的問題包括:管理存儲設置,決定文件的存放位置和方式,提供共享能力,保證文件安全性,提供友好的用戶接口。通過文件系統,用戶和應用程序能方便地進行數據存儲,而不必關心底層存儲設備的實現。
     Windows
支持多種文件系統,如FAT,FAT32,NTFS等。這些文件系統在操作系統內部有不同的實現方式,然而它們提供給用戶的接口是一致的。如果應用程序不涉及到操作系統的具體特性,那麼只要按照標準式來編寫代碼,生成的應用程序就可以運行在各個文件系統上,甚至還可以不經改動移植到其他操作系統(比如UnixLinux)上.NET框架中的IO處理部分就封裝了文件系統的實現細節,提供給開發人員一個標準化的接口。
     Windows
操作系統對文件系統採用多級目錄結構,並且提供了一組命令用於文件和目錄管理。可以使用.NET提供的標準方法進行目錄管理、文件控制和文件存取等工作,程序代友編譯執行時,.NET框架會自動調用相關的系統命令。
     C
#將文件視爲一個字節序列,以流的方式對文件進行操作。流是字節序列的製作概念,文件、輸入/輸出設計、內部時行程序管道以及TCP/IP套接字等都可以視爲一個流。.NET對流的概念進行了抽象,爲這些不同類型的輸入和輸出提供了統一的視圖,使程序員不必去了解操作系統和基礎設備的具體細節。
二、目錄和文件
1.
相關枚舉類型
a) FileAccess,
該枚舉類型表示文件的訪問權限,可以爲以下值。
i. Read---
對文件擁有讀權限
ii. ReadWrite---
對文件擁有的讀寫權限
iii. Write---
對文件擁有寫權限
b) FileAttributes
,該枚舉類型表示文件的類型
i. Archive---
存檔文件
ii. Compressed---
壓縮文件
iii. Device---
設備文件
iv. Directory---
目錄
v. Encrypted---
加密文件
vi. Hidden---
隱藏文件
vii. Normal---
普通文件
viii. NOtContentIndexd---
無索引文件
ix. Offline---
脫機文件
x. ReadOnly---
只讀文件
xi. ReparsePoint---
重分析文件
xii. SparseFile---
稀疏文件
xiii. System---
系統文件
xiv. Temporary---
臨時文件
枚舉值可以按位進行組合使用,比如FileAttributes.System|FileAttributes.ReadOnly表示系統只讀文件。當然,一些相互排斥的類型是不能進行組合的,比如一個文件不能既是普通文件,又是隱藏文件。
c) FileMode,
該枚舉類型表示文件的打開方式,可以爲以下值:
i. Append---
以追加的方式打開文件,如果文件存在則移動到文件末尾,否則創建一個新文件。
ii. Create---
創建並打開一個文件,如果文件已經存在則覆蓋舊文件。
iii. Open---
打開現有文件,如果文件不存在發生異常。
iv. OpenOrCreate---
打開或新建一個文件,如果文件存在則打開它,否則創建並打開一個新文件。
v. Truncate---
打開現有文件,並清空文件內容。
d) FileShare
,該枚舉類型表示文件共享方式,可以爲以下值。
i. None---
禁止任何形式的共享。
ii. Read---
讀共享,打開文件後允許其它進程對文件進行讀寫操作。
iii. ReadWrite---
讀寫共享,打開文件後允許其它進程對文件進行讀和寫操作。
iv. Write---
寫共享,打開文件後允許其它進程對文件進行寫操作。
e) SeekOrigin
,該枚舉類型表示文件的偏移以什麼爲準,可以爲以下值:
i. Begin---
從文件起始位置計。
ii. Current---
從文件流的當前位置計。
iii. End---
從文件流的末尾位置計。
f) NotifyFilters
,該枚舉類型用於指定對文件或目錄哪些屬性的修改進行監視,可以爲以下值:
i. Attributes---
對屬性的變化進行監視。
ii. CreationTime---
對創建時間的變化進行監視。
iii. DirectoryName---
對目錄名稱的變化進行監視。
iv. FileName---
對文件名稱的變化進行監視。
v. LastAccess---
對最後一次訪問時間的變化進行監視。
vi. LastWrite---
對最後一次時間的變化進行監視。
vii. Security---
對安全設置的變化進行監視。
viii. Size---
對大小的變化進行監視。
2.
目錄
使用Directory類提供的目錄管理功能,不僅可以創建、移動和刪除目錄,還可以獲取和設置目錄的相關信息。
Directory
提供的靜態方法有:
Ø Public static DirectoryInfo CreateDirectory(string)
---給定路徑名,創建目錄,並返回目錄信息。
Ø Public static void Delete(string)
---給定路徑名,刪除目錄。
Ø Public static void bool Exists(string)----
給定路徑名,判斷目錄是否存在。
Ø Public static DateTime GetCreationTime(string)----
給定路徑名,獲取目錄創建的日期和時間。
Ø Public static string GetCurrentDirectory()---
獲取應用程序的當前工作目錄。
Ø Public static string[] GetDirectory(string)---
給定路徑名,獲取目錄中的子目錄列表。
Ø Public static string GetDirectoryRoot(string)---
給定路徑名,獲取目錄的卷信息或要信息。
Ø Public static string[] GetFile(string)---
給定路徑名,獲取目錄中的文件列表。
Ø Public static string[] GetFileSystemEntries(string)---
給定路徑名,獲取目錄中的子目錄和文件列表。
Ø Public static DateTime GetLastAccessTime(string)---
給定路徑名,獲取文件最近一次訪問的日期和時間。
Ø Public static DateTime GetlastWriteTime(string)---
給定路徑名,獲得目錄最近一次修改的日期和時間。
Ø Public static string[] GetLogicalDrivers()---
獲得計算機上的邏輯驅動器列表。
Ø Public static DirectoryInfo GetParent(string)---
給定路徑名,獲取目錄上層目錄的信息。
Ø Public static void Move(string,string)---
給定源路徑名和目標路徑名,移動目錄。
Ø Public static void SetCreationTime(string,DateTime)---
給定路徑名,設置目錄創建的日期和時間。
Ø Public static void SetCreationDirectory(string)---
給定路徑名,將目錄設置爲應用程序的當前工作目錄。
Ø Public static void SetLastAccessTime(string,DateTime)---
給定路徑名,設置目錄最近一次被訪問的日期和時間。
Ø Public static void SetLastWriteTime(string,DateTime)---
給定路徑名,設置目錄最近一次被修改的日期和時間。

3. 文件
a)
文件基本操作
Ø Public static FileStream Create(string)---
給定文件路徑名,創建文件,並返回一個FileStream流對象。
Ø Public static StreamWriter CreateText(string)---
給定文件路徑名,以文本的方式創建文件,並返回一個StreamWriter流對象。
Ø Public static void Copy(string,string)---
給定源路徑名和目錄路徑名,考貝文件。
Ø Public static void Move(string,string)---
給定源路徑名和目錄路徑名,移支文件。
Ø Public static void Delete(string)---
給定源路徑名和目錄路徑名,刪除文件。
Ø Public static void Exists(string)---
給定源路徑名和目錄路徑名,判斷文件是否存在。

b)獲取和設置文件信息
Ø Public static FileAttributes GetAttributes(string)------
給定源路徑名,獲取文件的屬性集。
Ø Public static DateTime GetCreationTime(string)---
給定文件路徑名,獲取文件創建賓日期和時間。
Ø Public static DateTime GetLastAccessTime(string)---
給定文件路徑名,獲得文件最近一次被訪問的日期和時間。
Ø Public static DateTime GetLastWriteTime(string)---
給定文件路徑名,獲得文件最近一次被修改的日期和時間。
Ø Public static void SetAttributes(string,FileAttributes)---
給定文件路徑名,設置文件屬性集。
Ø Public static void SetCreationTime(string,DateTime)---
給定文件路徑名,設置文件創建的日期和時間。
Ø Public static void SetLastAccessTime(string,DateTime)----
給定文件路徑名,設置文件最近一次被訪問的日期和時間。
Ø Public static void SetLastWriteTime(string,DateTime)---
給定文件路徑名,設置文件最後一次被修改的日期和時間。

c)打開文件,並將文件與流對象相關聯
Ø Public static FileStream Open(string,FileMode)---
給定文件路徑名,按指定的方式打開文件,並返回一個FileStream流對象。
Ø Public static FileStream OpenRead(string)---
給定文件路徑名,以只讀方式打開文件,並返回一個FileStream流對象。
Ø Public static FileStream OpenWrite(string)---
給定文件路徑名,打開文件進行讀寫操作,並返回一個FileStream流對象。
Ø Public static StreamReader OpenText(string)---
給定文件路徑名,以文本方式打開文件並返回一個FileStream流對象。
Ø Public static StreamWriter AppendText(string)---
給定文件路徑名,以文本方式打開文件進行寫操作,並返回一個StreamWriter流對象。

 

發佈了5 篇原創文章 · 獲贊 6 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章