比如在下,有一个文件夹名为“目标”,此文件夹中有一个word文档也名为“目标”,用.filesearch方法搜索c:\abc\,条件为含“目标”的文件,但只能找到word文档,不能把“目标”文件夹找出来,这个问题要怎么解决呢?
没人能回答我的问题吗?急啊
第1个回答 2011-08-20
Sub aa()
Dim MyFile, MyPath, MyName
MyPath = "c:\abc\" ' 指定路径。
MyName = Dir(MyPath, vbDirectory) ' 找寻第一项。
Do While MyName <> "" ' 开始循环。
' 跳过当前的目录及上层目录。
If MyName <> "." And MyName <> ".." Then
' 使用位比较来确定 MyName 代表一目录或者文件夹。
If (GetAttr(MyPath & MyName) And vbDirectory) = vbDirectory And MyName = "目标" Then
Debug.Print MyName ' 如果它是一个文件夹,且名称为"目标",将其名称显示出来。
End If
End If
MyName = Dir ' 查找下一个目录。
Loop
End Sub
若非要使用FileSearch方法,就需要使用FileSearch下面的属性:SearchFolders
这样子的Application.FileSearch.SearchFolders,具体用法详见excel帮助追问
Dim MyFile, MyPath, MyName
MyPath = "c:\abc\" ' 指定路径。
MyName = Dir(MyPath, vbDirectory) ' 找寻第一项。
Do While MyName <> "" ' 开始循环。
' 跳过当前的目录及上层目录。
If MyName <> "." And MyName <> ".." Then
' 使用位比较来确定 MyName 代表一目录或者文件夹。
If (GetAttr(MyPath & MyName) And vbDirectory) = vbDirectory And MyName = "目标" Then
Debug.Print MyName ' 如果它是一个文件夹,且名称为"目标",将其名称显示出来。
End If
End If
MyName = Dir ' 查找下一个目录。
Loop
End Sub
若非要使用FileSearch方法,就需要使用FileSearch下面的属性:SearchFolders
这样子的Application.FileSearch.SearchFolders,具体用法详见excel帮助追问
有些帮助,不过你好像没完全明白我的意思,我是想把大文件夹下所有名称为“目标”的子文件夹、文件、以及子文件夹中的文件都找出来,你给的答案好像只能找一层,不能深入到子文件夹中去吧?
第2个回答 2011-08-20
vb.net的控制台程序查找所有.doc的文件:
Imports System
Imports System.IO
Imports System.Text
Module Module
Sub Main()
Dim di As New DirectoryInfo("F:\")
Dim fi As FileInfo() = di.GetFiles("*.doc", SearchOption.AllDirectories)
Console.WriteLine("The following files exist in the current directory:")
Dim fiTemp As FileInfo
For Each fiTemp In fi
Console.WriteLine(fiTemp.DirectoryName + "\" + fiTemp.Name)
Next fiTemp
Console.ReadKey()
End Sub
End Module本回答被网友采纳
Imports System
Imports System.IO
Imports System.Text
Module Module
Sub Main()
Dim di As New DirectoryInfo("F:\")
Dim fi As FileInfo() = di.GetFiles("*.doc", SearchOption.AllDirectories)
Console.WriteLine("The following files exist in the current directory:")
Dim fiTemp As FileInfo
For Each fiTemp In fi
Console.WriteLine(fiTemp.DirectoryName + "\" + fiTemp.Name)
Next fiTemp
Console.ReadKey()
End Sub
End Module本回答被网友采纳