搜索文件扩展名VB.NET [英] Searching By File Extensions VB.NET
问题描述
我一直在尝试搜索指定的目录和所有子目录的所有文件,具有指定的文件扩展名。但是,如果您无法访问目录,则内置命令将无效,因为错误命令会死机。所以这里是我现在有的:
私有函数dirSearch(ByVal path As String,可选ByVal searchpattern As String =。 exe)As String()
Dim di As New DirectoryInfo(path)
Dim fi As FileInfo
Dim filelist()As String
Dim i As Integer = 0
对于每个fi在di.GetFiles
如果System.IO.Path.GetExtension(fi.FullName).ToLower = searchpattern然后
filelist(i)= fi.FullName
i + = 1
结束如果
下一个
返回文件列表
结束函数
但是我得到一个System.NullReferenceException:对象引用未设置为对象的实例。当我尝试访问存储在文件列表字符串数组中的数据。
任何想法在什么im做错了?
di.GetFiles(searchPattern)
Dim files()as FileInfo = di.GetFiles(searchPattern)
使用返回数组字符串的静态方法Directory.GetFiles
Dim files = Directory.GetFiles(Path,searchPattern,searchOption)
演示:
Dim files()As String
files = Directory.GetFiles(path,* .exe,SearchOption.TopDirectoryOnly)
对于每个FileName As String在文件
Console.WriteLine(FileName)
下一个
$递交目录遍历: Sub Main()
Dim path =c:\jam
Dim fileList As New List(Of String)
GetAllAccessibleFiles(path,fileList)
'转换列表< T>如果你想要
Dim files As String()= fileList.ToArray
对于每个s as String在fileList
Console.WriteLine(s)
下一个
End Sub
Sub GetAllAccessibleFiles(path As String,filelist As List(Of String))
对于每个文件As String在Directory.GetFiles(path,*。* )
filelist.Add(file)
下一个
对于每个dir As String在Directory.GetDirectories(路径)
尝试
GetAllAccessibleFiles(dir,filelist)
Catch ex As Exception
结束尝试
下一个
End Sub
Hi all i have been trying to search a specified directory and all sub directories for all files that have the specified file extension. However the inbuilt command is useless as it errors up and dies if you dont have access to a directory. So here's what i have at the moment:
Private Function dirSearch(ByVal path As String, Optional ByVal searchpattern As String = ".exe") As String()
Dim di As New DirectoryInfo(path)
Dim fi As FileInfo
Dim filelist() As String
Dim i As Integer = 0
For Each fi In di.GetFiles
If System.IO.Path.GetExtension(fi.FullName).ToLower = searchpattern Then
filelist(i) = fi.FullName
i += 1
End If
Next
Return filelist
End Function
However i get an "System.NullReferenceException: Object reference not set to an instance of an object." when i try to access the data stored inside the filelist string array.
Any idea's on what im doing wrong?
解决方案 You didn't instantiate the Dim filelist() As String
array. Try di.GetFiles(searchPattern)
Dim files() as FileInfo = di.GetFiles(searchPattern)
Use static method Directory.GetFiles that returns an array string
Dim files = Directory.GetFiles(Path,searchPattern,searchOption)
Demo:
Dim files() As String
files = Directory.GetFiles(path, "*.exe", SearchOption.TopDirectoryOnly)
For Each FileName As String In files
Console.WriteLine(FileName)
Next
Recursive directory traversal:
Sub Main()
Dim path = "c:\jam"
Dim fileList As New List(Of String)
GetAllAccessibleFiles(path, fileList)
'Convert List<T> to string array if you want
Dim files As String() = fileList.ToArray
For Each s As String In fileList
Console.WriteLine(s)
Next
End Sub
Sub GetAllAccessibleFiles(path As String, filelist As List(Of String))
For Each file As String In Directory.GetFiles(path, "*.*")
filelist.Add(file)
Next
For Each dir As String In Directory.GetDirectories(path)
Try
GetAllAccessibleFiles(dir, filelist)
Catch ex As Exception
End Try
Next
End Sub
这篇关于搜索文件扩展名VB.NET的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!