程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> C#文件IO操作

C#文件IO操作

編輯:.NET實例教程

一、文件系統概述

    計算機系統的重要作用之一是能快速處理大量信息,因此數據的組織和存取成為一個極為重要的內容。文件是信息的一種組織形式,而文件系統的的目標就是提高存儲器的利用率,接受用戶的委托實施對文件的操作。

      文件系統是操作系統的一個重要組成部分。文件系統所要解決的問題包括:管理存儲設置,決定文件的存放位置和方式,提供共享能力,保證文件安全性,提供友好的用戶接口。通過文件系統,用戶和應用程序能方便地進行數據存儲,而不必關心底層存儲設備的實現。

     Windows支持多種文件系統,如FAT,FAT32,NTFS等。這些文件系統在操作系統內部有不同的實現方式,然而它們提供給用戶的接口是一致的。如果應用程序不涉及到操作系統的具體特性,那麼只要按照標准式來編寫代碼,生成的應用程序就可以運行在各個文件系統上,甚至還可以不經改動移植到其他操作系統(比如Unix和Linux)上.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流對象。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved