首先是有一个已知的路径,现在要遍历该路径下的所有文件衡核及文件夹,因此定义了一个列表,用于存放遍历到的文件名。C#代码如下:
string path = "给定的文件夹名称"List<string> nameList = new List<string>()
Director(path,nameList)
public void Director(string 咐衡掘拦备dir,List<string> list)
{
DirectoryInfo d = new DirectoryInfo(dir)
FileInfo[] files = d.GetFiles()//文件
DirectoryInfo[] directs = d.GetDirectories()//文件夹
foreach (FileInfo f in files)
{
list.Add(f.Name)//添加文件名到列表中
}
//获取子文件夹内的文件列表,递归遍历
foreach (DirectoryInfo dd in directs)
{
Director(dd.FullName, list)
}
}
Function SearchFiles(Path As String, FileType As String)Dim Files() As String '文件路径
Dim Folder() As String '文件夹路径
Dim a, b, c As Long
Dim sPath As String
sPath = Dir(Path &FileType) '查找第一个文件
Do While Len(sPath) '循环到没有文件为止
a = a + 1
ReDim Preserve Files(1 To a)
Files(a) = Path &sPath '将文件目录和文件名组合,并存放到数组中御枣
List1.AddItem Files(a) '加入list控件中
sPath = Dir '查找下一个文件
DoEvents '让出控制权
Loop
sPath = Dir(Path &"\镇弊拆", vbDirectory) '查找第一个文件夹
Do While Len(sPath) '循环到没有文件夹为止
If Left(sPath, 1) <>"." Then '为了防止重复查找
If GetAttr(Path &"\" &sPath) And vbDirectory Then '如果是文件夹则。。。。。。
b = b + 1
ReDim Preserve Folder(1 To b)
Folder(b) = Path &sPath &"\" '将目录和文件夹名称组合形成新的目录,并存放到数组中
End If
End If
sPath = Dir '查找下一个文件夹
DoEvents '让出控制权
Loop
For c = 1 To b '使用递归方法,遍历所有目录
SearchFiles Folder(c), FileType
Next
End Function
Private Sub Command1_Click() '调卜碧用
SearchFiles "e:\", "*.exe"
End Sub
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)