在递归中,您将丢失在子目录中找到的文件。通过以下方式捕获返回文件名:
foreach (string d in Directory.GetDirectories(dirName)){ fileNames.AddRange(GetXMLFiles(fileType, d));}
发生的情况是此行
var fileNames = newList<String>();创建了一个名为的局部变量
fileNames。您可能会认为,因为您的方法是静态的,所以方法内部的变量是静态的。不是这种情况。因此,每次调用时
GetXMLFiles,都会为每个调用创建此变量的副本。
由于
fileNames对于的每次调用都是本地的
GetXMLFiles,因此您需要将其找到的所有文件名返回给调用者,并且调用者需要将这些文件名添加到其本地的集合中。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)