??????.Net Framework 提供了幾個基類,用于獲取現有文件信息。這些基類位于System.IO命名空間中,主要包括以下幾個:
???????????? Directory和File: 這兩個類提供一組靜態方法,可以通過它們獲取任意服務器上可見文件和目錄的信息。
??????????? ?DriveInfo,DirectoryInfo和FileInfo: 這些類使用相似的實例方法和屬性來獲取同樣的信息
??????這兩組類提供相似的方法和屬性。主要差別在于調用任何方法前必須創建DirectoryInfo或FileInfo對象,而Directory和File類的靜態方法隨時都可用。一般而言,Directory和File類更適合處理一次性任務。另一方面,如果你需要獲取若干信息,創建DirectoryInfo和FIleInfo對象則更好一些,這樣不必在每次調用方法時都提供文件或目錄的名稱。同時他們還更快一些,因為FileInfo和DirectoryInfo類只執行一次安全檢查(僅在你創建對象實例時)。Directory和File類在每次調用方法時都要執行安全檢查。
Directory類和File類
??????Directory類和File類提供了很多有用的方法(見msdn)
??????Directory和File的方法都非常直觀。例如,可以用下面這段代碼輸出一個動態列表,顯示當前目錄中的每個文件名稱。
???????
??????上例中包含文件路徑C:Temp的字符串前面跟著一個@字符。它告訴c#完全按照你寫的格式解釋字符串。沒有這個字符的話,c#會認為是從目錄分隔符“\”開始一個特殊字符序列。另一個辦法是使用轉義字符序列"\\",C#把它解釋為單個斜杠。所以,應該把路徑寫作"C:\\Temp".
??????因為所謂的文件列表只是普通的字符串列表,它可以很方便地綁定到列表控件上,這樣就可以用如下更高效的語法在頁面上顯示它們了:
??????
PS:要讓這段代碼正常運行,用于運行ASP.NET工作進程的賬號必須有訪問所使用的目錄權限,否則,web頁面試圖訪問文件系統時會拋出一個SecurityException異常。你可以右擊修改目錄許可,選擇"屬性"---"安全"標簽。
??????如果使用的是IIS5的默認ASP.NET設置,你可以為ASP.NET賬號賦予讀寫權限;如果是IIS6,需要給IIS_WPG組賦予許可;對于IIS7,需要給IIS_USRS組賦予許可。另外,你可以修改ASP.NET使用的賬號。
???????????? Directory和File: 這兩個類提供一組靜態方法,可以通過它們獲取任意服務器上可見文件和目錄的信息。
??????????? ?DriveInfo,DirectoryInfo和FileInfo: 這些類使用相似的實例方法和屬性來獲取同樣的信息
??????這兩組類提供相似的方法和屬性。主要差別在于調用任何方法前必須創建DirectoryInfo或FileInfo對象,而Directory和File類的靜態方法隨時都可用。一般而言,Directory和File類更適合處理一次性任務。另一方面,如果你需要獲取若干信息,創建DirectoryInfo和FIleInfo對象則更好一些,這樣不必在每次調用方法時都提供文件或目錄的名稱。同時他們還更快一些,因為FileInfo和DirectoryInfo類只執行一次安全檢查(僅在你創建對象實例時)。Directory和File類在每次調用方法時都要執行安全檢查。
Directory類和File類
??????Directory類和File類提供了很多有用的方法(見msdn)
??????Directory和File的方法都非常直觀。例如,可以用下面這段代碼輸出一個動態列表,顯示當前目錄中的每個文件名稱。
???????
????
string
?directoryName?
=
?
@"
C:\Temp
"
;
???? string []?fileList? = ?Directory.GetFiles(directoryName);
???? foreach ( string ?file? in ?fileList)
????{
????????lstFiles.Items.Add(file);
????}
???? string []?fileList? = ?Directory.GetFiles(directoryName);
???? foreach ( string ?file? in ?fileList)
????{
????????lstFiles.Items.Add(file);
????}
??????上例中包含文件路徑C:Temp的字符串前面跟著一個@字符。它告訴c#完全按照你寫的格式解釋字符串。沒有這個字符的話,c#會認為是從目錄分隔符“\”開始一個特殊字符序列。另一個辦法是使用轉義字符序列"\\",C#把它解釋為單個斜杠。所以,應該把路徑寫作"C:\\Temp".
??????因為所謂的文件列表只是普通的字符串列表,它可以很方便地綁定到列表控件上,這樣就可以用如下更高效的語法在頁面上顯示它們了:
??????
string
?dirctoryName?
=
?
@"
C:\Temp
"
;
lstFiles.DataSource? = ?Direcory.GetFiles(dirctoryName);
lstFiles.DataBind();
lstFiles.DataSource? = ?Direcory.GetFiles(dirctoryName);
lstFiles.DataBind();
PS:要讓這段代碼正常運行,用于運行ASP.NET工作進程的賬號必須有訪問所使用的目錄權限,否則,web頁面試圖訪問文件系統時會拋出一個SecurityException異常。你可以右擊修改目錄許可,選擇"屬性"---"安全"標簽。
??????如果使用的是IIS5的默認ASP.NET設置,你可以為ASP.NET賬號賦予讀寫權限;如果是IIS6,需要給IIS_WPG組賦予許可;對于IIS7,需要給IIS_USRS組賦予許可。另外,你可以修改ASP.NET使用的賬號。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
