怎样获取一个文件夹下的所有文件的物理路径存到ArrayList中
想了好几天了,高手帮看看
------解决方案--------------------您还可以使用独立存储文件来搜索现有的目录和文件。请记住,在存储区中,文件名和目录名是相对于虚文件系统的根目录指定的。此外,Windows 文件系统中的文件和目录名不区分大小写。
要搜索某个目录,请使用 IsolatedStorageFile 的 GetDirectoryNames 实例方法。GetDirectoryNames 采用表示搜索模式的字符串。支持使用单字符 (?) 和多字符 (*) 通配符。这些通配符不能出现在名称的路径部分。也就是说,directory1/*ect* 是有效的搜索字符串,而 *ect*/directory2 不是有效的搜索字符串。
要搜索某个文件,请使用 IsolatedStorageFile 的 GetFileNames 实例方法。对应用于 GetDirectoryNames 的搜索字符串中通配符的相同限制也适用于 GetFileNames。
GetDirectoryNames 和 GetFileNames 都不是递归的,即 IsolatedStorageFile 不提供用于列出存储区中所有目录或文件的方法。但是,下面的代码中部分是递归方法的示例。另外还要注意,GetDirectoryNames 和 GetFileNames 只返回找到的项的目录名或文件名。例如,如果找到目录 RootDir/SubDir/SubSubDir 的匹配项,结果数组中将返回 SubSubDir。
FindingExistingFilesAndDirectories 示例
下面的代码示例阐释如何在独立存储区创建文件和目录。首先,检索一个按用户、域和程序集隔离的存储区并放入 isoStore 变量。CreateDirectory 方法用于设置几个不同的目录,IsolatedStorageFileStream 方法在这些目录中创建一些文件。然后,代码依次通过 GetAllDirectories 方法的结果。该方法使用 GetDirectoryNames 来查找当前目录中的所有目录名。这些名称存储在数组中,然后 GetAllDirectories 调用其本身,传入它所找到的每个目录。结果是在数组中返回的所有目录名。然后,代码调用 GetAllFiles 方法。该方法调用 GetAllDirectories 以查找所有目录的名称,然后它检查每个目录以查找使用 GetFileNames 方法的文件。结果返回到数组中用于显示。
[Visual Basic]
Imports System
Imports System.IO
Imports System.IO.IsolatedStorage
Imports System.Collections
Public Module modmain
' These arrayLists hold the directory and file names as they are found.
Dim directoryList As New ArrayList()
Dim fileList As New ArrayList()
' Retrieves an array of all directories in the store, and
' displays the results.
Sub Main()
' This part of the code sets up a few directories and files in the
' store.
Dim isoStore As IsolatedStorageFile
isoStore = IsolatedStorageFile.GetStore(IsolatedStorageScope.User Or IsolatedStorageScope.Assembly Or IsolatedStorageScope.Domain, Nothing, Nothing)
isoStore.CreateDirectory( "TopLevelDirectory ")
isoStore.CreateDirectory( "TopLevelDirectory/SecondLevel ")
isoStore.CreateDirectory( "AnotherTopLevelDirectory/InsideDirectory ")
Dim aStream As New IsolatedStorageFileStream( "InTheRoot.txt ", FileMode.Create, isoStore)
Dim bStream As New IsolatedStorageFileStream( "AnotherTopLevelDirectory/InsideDirectory/HereIAm.txt ", FileMode.Create, isoStore)
' End of setup.
Console.WriteLine()
Console.WriteLine( "Here is a list of all directories in this isolated store: ")
Call GetAllDirectories( "* ", isoStore)
Dim directory As String
For Each directory In directoryList
console.WriteLine(directory)
Next
Console.WriteLine()
Console.WriteLine( "Retrieve all the files in the directory by calling the GetFiles method. ")
Dim file As String
Call GetAllFiles(isoStore)
For Each file In fileList
Console.WriteLine(file)
Next
End Sub
Sub GetAllDirectories(ByVal pattern As String, ByVal storeFile As IsolatedStorageFile)
' Retrieve directories.
Dim directories As String()
directories = storeFile.GetDirectoryNames(pattern)
Dim directory As String
For Each directory In directories
' Add the directory to the final list.
directoryList.Add((pattern.TrimEnd(CChar( "* "))) + directory + "/ ")
' Call the method again using directory.
GetAllDirectories((pa