通過FileInfo和DirectoryInfo類來讀取文件和文件夾屬性 查看文件屬性,創建文件,移動文件,重命名文件 判斷路徑是否存在,創建目錄
1、下面的類用於瀏覽文件系統和執行操作,比如移動,復制和刪除文件。
System.MarshalByRefObject 這個是.NET類中用於遠程操作的基對象類,它允許在應用程序域之間編組數據。
FileSystemInfo 這是表示任何文件系統對象的基類
FileInfo和File 這些類表示文件系統上的文件
DirectoryInfo和Directory 表示文件系統上的文件夾
Path 包含用於處理路徑名的一些靜態方法
DriveInfo 它的屬性和方法提供了指定驅動器的信息
2、表示文件和文件夾的.NET類
我們有兩個用於表示文件夾的類和兩個用於表示文件的類 Directory(文件夾)和 File(文件)類只包含靜態方法,不能被實例化。如果只對文件夾或文件執行一個操作,使用這些類就很有效,省去了去實例化.NET類的系統開銷。
DirectoryInfo類和FileInfo類實現與Directory和File相同的公共方法,他們擁有一些公共屬性和構造函數,這些類的成員都不是靜態的。需要實例化這些類,之后把每個實例與特定的文件夾或者文件關聯起來。如果使用同一個對象執行多個操作,使用這些類比較合適,這是因為在構造的時候他們將讀取合適文件系統對象的身份驗證和其他信息,無論每個對象調用了多少方法,都不需要再次讀取這些信息。
FileInfo和DirectoryInfo類
對於FileInfo和DirectoryInfo類中的很多方法也可以使用File和Directory中的很多方法實現。
//1,完成一個文件的拷貝 FileInfo myFile = new FileInfo(@"c:\pxx\xx\xxx\xxx.txt"); myFile.CopyTo(@"d:\xx\xx.txt");//拷貝文件 //對應的File處理方式 File.Copy(@"c:\xxx\xx\xx\xx.txt", @"d:\xx\xx\xx.txt"); //2,判斷一個文件夾是否存在 DirectoryInfo myFolder = new DirectoryInfo(@"c:\program files"); myFolder.Exists
對於FileInfo,或者DirectoryInfo進行構造的時候,如果傳遞了一個不存在的文件或者文件夾路徑,這個時候不會出現異常,只有當你使用這個文件或者文件夾的時候才會出現問題。 FileInfo和DirectoryInfo的對象都可以通過Exists屬性判斷這個文件或者文件夾是否存在。
FileInfo和DirectoryInfo的屬性列表
屬性 | 作用 |
---|---|
CreationTime | 創建文件或文件夾的時間 |
DirectoryName(用於FileInfo) | 包含文件夾的完整路徑 |
Parent(用於DirectoryInfo) | 指定子目錄的父目錄 |
Exists | 文件或文件夾是否存在 |
Extension | 文件的擴展名,對於文件夾,它返回空白 |
FullName | 文件或文件夾的完整路徑名 |
LastAccessTime | 最后一次訪問文件或文件夾的時間 |
LastWriteTime | 最后一個修改文件或文件夾的時間 |
Name | 文件或文件夾的名稱 |
Root(僅用於DirectoryInfo | 路徑的根部分 |
Length(僅用於FileInfo) | 返回文件的大小(以字節為單位) |
FiInfo和DirectoryInfo的方法列表
方法 | 作用 |
---|---|
Create() | 創建給定名稱的文件夾或者空文件,對於FileInfo,該方法會返回一個流對象,以便於寫入文件。 |
Delete() | 刪除文件或文件夾。對於文件夾有一個可以遞歸的Delete選項 |
MoveTo() | 移動或重命名文件或文件夾 |
CopyTo() | (只用於FileInfo)復制文件,文件夾沒有復制方法,如果想要復制完整的目錄樹,需要單獨復制每個文件和文件夾 |
GetDirectories() | (只適用於DirectoryInfo)返回DirectoryInfo對象數組,該數組表示文件夾中包含的所有文件夾 |
GetFiles() | (只適用於DirectoryInfo)返回FileInfo對象數組,該數組表示文件夾中所有的文件 |
GetFileSystemInfos() | (只適用於DirectoryInfo)返回FileInfo和DirectoryInfo對象,它把文件夾中包含的所有對象表示為一個FileSystemInfo引用數組 |