c# DirectoryInfo類 詳解


DirectoryInfo類和Directory類之間的關系與FileInfo類和File類之間的關系十分類似。下面介紹一下DirectoryInfo類的常用屬性。

DirectoryInfo類的常用屬性及說明如表所示。

表  DirectoryInfo類的常用屬性及說明

 

屬性 說明
Attributes  設置當前 FileSystemInfo 的 FileAttributes
CreationTime  設置當前 FileSystemInfo 對象的創建時間
Exists 獲取指示目錄是否存在的值
FullName  獲取目錄或文件的完整目錄
Parent 獲取指定子目錄的父目錄
Name 獲取此 DirectoryInfo 實例的名稱

 

 

 

 

 

 

 


下面對DirectoryInfo類中比較重要的屬性進行詳細介紹。

(1)CreationTime 屬性

設置當前 FileSystemInfo 對象的創建時間。

語法:

 

public DateTime CreationTime { get; set; }

 


屬性值:當前 FileSystemInfo 對象的創建日期和時間。

例如,獲得F:\test\0000\目錄下文件夾AA的創建日期和時間,首先將DirectoryInfo實例化,然后通過CreationTime屬性得到此文件夾的創建日期和時間。代碼如下所示:


     

   string Paths = @"F:\test\0000\AA";

        DirectoryInfo di = new DirectoryInfo(Paths);// 將DirectoryInfo實例化

        string name = di.CreationTime.ToString();//通過CreationTime屬性得到此文件夾的創建日期和時間

        Label1.Text = "文件夾創建時間:"+name;

 


 


(2)Exists屬性

判斷指定的文件夾是否存在。

語法:

 

public override bool Exists { get; }

 


屬性值:如果目錄存在,則為 True;否則為 False。

例如,判斷F:\test\0000\目錄下是否存在名為ls的文件夾,首先要將DirectoryInfo實例化,然后通過Exists屬性判斷此文件夾是否存在,如果文件夾存在,返回值為True,否則為False。代碼如下所示:

 

 1 string Paths = @"F:\test\0000\AA";
 2 
 3 DirectoryInfo di = new DirectoryInfo(Paths);
 4 
 5 if (di.Exists)
 6 
 7         {
 8 
 9            Page.RegisterStartupScript("","<script>alert('該文件夾已經存在')</script>");
10 
11         }

 


 


DirectoryInfo類的常用方法及說明如表所示。

表    DirectoryInfo類的常用方法及說明

 

方法
 
說明
 
Create 創建目錄
CreateObjRef   創建一個對象,該對象包含生成用於與遠程對象進行通信的代理所需的全部相關信息
CreateSubdirectory  在指定路徑中創建一個或多個子目錄。指定路徑可以是相對於 DirectoryInfo 類的此實例的路徑 
Delete  從路徑中刪除 DirectoryInfo 及其內容
Equals 確定兩個 Object 實例是否相等
GetAccessControl  獲取當前目錄的訪問控制列表 (ACL) 項 
GetDirectories  返回當前目錄的子目錄
GetFiles  返回當前目錄的文件列表
GetFileSystemInfos 檢索表示當前目錄的文件和子目錄的強類型 FileSystemInfo 對象的數組
GetHashCode  用作特定類型的哈希函數。GetHashCode 適合在哈希算法和數據結構(如哈希表)中使用 
GetLifetimeService  檢索控制此實例的生存期策略的當前生存期服務對象 
GetObjectData 設置帶有文件名和附加異常信息的 SerializationInfo 對象 
GetType   獲取當前實例的 Type 
InitializeLifetimeService   獲取控制此實例的生存期策略的生存期服務對象
MoveTo  將 DirectoryInfo 實例及其內容移動到新路徑
ReferenceEquals   確定指定的 Object 實例是否是相同的實例
Refresh   刷新對象的狀態 
SetAccessControl  將 DirectorySecurity 對象所描述的訪問控制列表 (ACL) 項應用於當前 DirectoryInfo 對象所描述的目錄
ToString 返回用戶所傳遞的原始路徑

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

下面對DirectoryInfo類中比較重要的方法進行詳細介紹。

(1)Create方法

此方法可以方便的創建目錄。

語法:

 

public void Create ()

 


例如,在D盤下創建名為AA的文件夾,首先要將DirectoryInfo類實例化,然后判斷是否存在同名的文件夾,如果不存在,則使用Create方法創建目錄。代碼如下所示:


      

 1   string path = "D:\\AA";
 2 
 3         DirectoryInfo di = new DirectoryInfo(path);
 4 
 5         if (!di.Exists)
 6 
 7         {
 8 
 9             di.Create();
10 
11         }
12 
13         else
14 
15         {
16 
17             Response.Write("此文件夾已經存在!");
18 
19         }
20  

 


(2)GetFileSystemInfos方法

返回表示某個目錄中所有文件和子目錄的強類型FileSystemInfo項的數組。

語法:

 

public FileSystemInfo[] GetFileSystemInfos ()

 


返回值:

強類型 FileSystemInfo 項的數組。

(3)MoveTo方法

將指定的內容移動到新路徑。

語法:

 

public void MoveTo (string destDirName)

 


參數:

destDirName :要將此目錄移動到的目標位置的名稱和路徑,目標不能是另一個具有相同名稱的磁盤卷或目錄。

(4)Delete方法

刪除指定的文件夾。

語法:

public override void Delete ()

 


例如,刪除D盤下名為AA的文件夾,首先將DirectoryInfo類實例化,然后判斷是否存在此文件夾,如果存在則使用Delete方法刪除此文件夾。


    

 1     string path = "D:\\AA";
 2 
 3         DirectoryInfo di = new DirectoryInfo(path);
 4 
 5         if (di.Exists)
 6 
 7         {
 8 
 9             di. Delete();
10 
11         }
12 
13         else
14 
15         {
16 
17             Response.Write("不存在此文件夾!");
18 
19         }

 

 

 

 Directory 與 DirectoryInfo 這兩個能夠實現大多數相同的功能。

區別可分為兩點:
一、靜態與實例調用 前者必須被實例化后才能使用,而后者則只提 供了靜態的方法。如果多次使用某個對象一般使用前者; 如果僅執行某一個操作則使用后者提供的靜態方法效率更 高一些。
Directory 可直接調用,不需要實例化,比如 Directory.Delete(path)。一般比DirectoryInfo的函數要多出一個path參數。 DirectoryInfo 必須實例化才能調用其方法,在頻繁地操作某一目錄時,這種方式比較方便。
二、功能多少 DirectoryInfo 的功能要稍微比 Directory 多些、強些,比如 DirectoryInfo 的 GetFiles 返回的是 FileInfo[],而 Directory.GetFiles 返回的是 string[]。





免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM