【求助】如何使用队列进行文件遍历
我最进忙着写一个文件搜索工具,已将完成了。使用的是递归的方法进行文件的遍历。但是,可惜的是,如果文件路径多了,就会出现堆栈泄露,等事情。在网上听说使用队列的方法就可以解决文件遍历的问题。所以,请教一下各位高手,如何使用队列遍历文件。谢谢!
[解决办法]
贴出你的主要代码——有4、5行就够了。
[解决办法]
贴出你的主要代码——有4、5行就够了。
[解决办法]
用队列储存要搜索的目录
队列搜索根目录
循环开始
从队列中取一个元素(目录)
获取该目录下所有目录,依次排入队列
获取该目录下所有文件,添加至结果集
循环直到队列为空
Imports SystemImports System.Collections.GenericImports System.IONamespace MyTestModule Module1 Private Dirs As New Queue(Of String) Public Sub Main() Dim files As New List(Of String) Console.WriteLine("Input Path:") Dim root = Console.ReadLine() Dirs.Enqueue(root) Dim currentDir As String Do currentDir = Dirs.Dequeue() Try For Each dir As String In Directory.GetDirectories(currentDir) Dirs.Enqueue(dir) Next files.AddRange(Directory.GetFiles(currentDir)) Catch Continue Do End Try Loop Until Dirs.Count = 0 files.ForEach(AddressOf Console.WriteLine) End Sub End ModuleEnd Namespace