使用 .NET的IO(5)

查找現有的文件和目錄<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

您還可以使用獨立存儲文件來搜索現有的目錄和文件。請記住,在存儲區中,文件名和目錄名是相對於虛文件系統的根目錄指定的。此外,Windows 文件系統中的文件和目錄名不區分大小寫。

要搜索某個目錄,請使用 IsolatedStorageFile 的 GetDirectoryNames 實例方法。GetDirectoryNames 採用表示搜索模式的字符串。支持使用單字符 (?) 和多字符 (*) 通配符。這些通配符不能出現在名稱的路徑部分。也就是說,directory1/*ect* 是有效的搜索字符串,而 *ect*/directory2 不是有效的搜索字符串。

要搜索某個文件,請使用 IsolatedStorageFile GetFileNames 實例方法。對應用於 GetDirectoryNames 的搜索字符串中通配符的相同限制也適用於 GetFileNames

GetDirectoryNamesGetFileNames 都不是遞歸的,即 IsolatedStorageFile 不提供用於列出存儲區中所有目錄或文件的方法。但是,下面的代碼中部分是遞歸方法的示例。另外還要注意,GetDirectoryNamesGetFileNames 只返回找到的項的目錄名或文件名。例如,如果找到目錄 RootDir/SubDir/SubSubDir 的匹配項,結果數組中將返回 SubSubDir

FindingExistingFilesAndDirectories 示例

下面的代碼示例闡釋如何在獨立存儲區創建文件和目錄。首先,檢索一個按用戶、域和程序集隔離的存儲區並放入 isoStore 變量。CreateDirectory 方法用於設置幾個不同的目錄,IsolatedStorageFileStream 方法在這些目錄中創建一些文件。然後,代碼依次通過 GetAllDirectories 方法的結果。該方法使用 GetDirectoryNames 來查找當前目錄中的所有目錄名。這些名稱存儲在數組中,然後 GetAllDirectories 調用其本身,傳入它所找到的每個目錄。結果是在數組中返回的所有目錄名。然後,代碼調用 GetAllFiles 方法。該方法調用 GetAllDirectories 以查找所有目錄的名稱,然後它檢查每個目錄以查找使用 GetFileNames 方法的文件。結果返回到數組中用於顯示。

讀取和寫入文件

使用 IsolatedStorageFileStream 類,有多種方法可以打開存儲區中的文件。一旦獲得了 IsolatedStorageFileStream 之後,可使用它來獲取 StreamReader 或 StreamWriter。使用 StreamReaderStreamWriter,您可以像對任何其他文件一樣讀取和寫入存儲區中的文件。

ReadingAndWritingToFiles 示例

下面的代碼示例獲得獨立存儲區,創建一個名爲 TestStore.txt 的文件並將“Hello Isolated Storage”寫入文件。然後,代碼讀取該文件並將結果輸出到控制檯。

刪除文件和目錄

您可以刪除獨立存儲文件中的目錄和文件。請記住,在存儲區中,文件名和目錄名是與操作系統相關的(在 Microsoft Windows 系統中通常不區分大小寫),並且是根據虛文件系統的根目錄具體而定的。

IsolatedStoreFile 類提供了兩種刪除目錄和文件的實例方法:DeleteDirectory 和 DeleteFile。如果嘗試刪除並不存在的文件和目錄,則會引發 IsolatedStorageFileException。如果名稱中包含有通配符,則 DeleteDirectory 會引發 IsolatedStorageFileException,而 DeleteFile 將引發 ArgumentException。

如果目錄中包含任何文件或子目錄,DeleteDirectory 將會失敗。在 DeletingFilesAndDirectories 示例的一部分中定義了一個方法,該方法刪除目錄中的所有內容,然後刪除目錄本身。同樣,您可以自己定義一個接受通配符的 DeleteFiles 方法,該方法可以這樣來實現:使用 GetFileNames 方法獲取所有匹配文件的列表,然後依次刪除每個文件。

DeletingFilesAndDirectories 示例

下面的代碼示例先創建若干個目錄和文件,然後將它們刪除。

總結

    上面是VS.NET中.NET中IO的基本概念、示例代碼以及訪問文件系統的基礎方法和流程,大家可以多多實踐。有任何建議請MAIL我 [email protected]

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章