2009-11-07 214 views
0

我需要一个文件搜索我的Visual Basic 2008程序。你们知道一种开始的方式吗?我听说你需要管理员对某些文件进行搜索,但我不想要这些东西,因为这对用户来说是一个错误。Visual Basic 2008文件搜索

+0

@CodyGray你说得对,我去他们一点很快。我倾向于保留签名,如果他们不占用太多的空间... – MPelletier 2012-05-12 05:14:25

回答

0

System.IO.Directory Class应该可以帮到你。

此外,您可能想要构建目录系统或查找支持API的系统。这样,每次用户执行查询时,您都不必遍历目录结构。

基本上你可以做的(伪代码,调整到适合):

Dim fn as File 

For Each fn in System.IO.Directory.GetFiles(SomePath,"*.*",System.IO.SearchOption.AllDirectories) 
    ' Do something with the fn 
End For 

现在有周围的NTFS ACL的没办法,你将需要处理这个适当。

看看这篇文章,从C#钩入Windows Desktop Search

Microsoft Windows Search 3.x SDK

简要说明

1.0版

下载Windows搜索软件 开发工具包,探索样品 应用程序和使用Visual Studio中,C#开发,和.NET技术。

更新1

功能,做的事情,在目录中的文件(伪代码,调整到适合):

Public Function MyDirectoryFunction(ByVal dir as String, ByVal fileMatch as String, ByVal beRecursive as Boolean) 
    Dim fn as File 
    Dim searchOpt as System.IO.SearchOption 

    If beRecursive = True Then 
     searchOpt = System.IO.SearchOption.AllDirectories 
    Else 
     searchOpt = System.IO.SearchOption.TopDirectoryOnly 
    End If 

    If String.IsNullOrEmpty(fileMatch) Then 
     fileMatch = "*.*" 
    End If 

    For Each fn in System.IO.Directory.GetFiles(dir, fileMatch, searchOpt) 
     ' Do something with the fn 
    End For 
End Function 
+0

好吧,我得到了文件搜索,以找到我想要的方式,但是当我尝试搜索整个C:\文件时,它会给我错误的是它找不到c:\ documents和settings。我在Vista上,所以它有点不同。我怎样才能让程序只搜索存在的目录? – lab12 2009-11-08 01:09:24

+0

将上面的代码包装到一个函数中,该函数为要搜索的目录提供一个参数是实现您需要的一种方法 – Wayne 2009-11-08 23:47:23