C#学习教程:递归遍历目录树并列出文件名我写了一些代码,但是有一个错误。不知道我做错了什么。顺便说一句,这是在C#中使用VisualStudio中的WPF。这是VisualStudio中的整个项目解决方案:http://tinyurl.com/a2r5jv9如果您不想下载项目解决方案,请参阅MainWindow.xaml.cs中的代码:http://pastebin.com/cWRTeq3NMe也会把代码贴在这里。publicpartialclassMainWindow:Window{privatevoidButton_Click_1(objectsender,RoutedEventArgse){stringsourcePath=@"C:temp";staticvoidDirSearch(stringsourcePath){try{foreach(stringdinDirectory.GetDirectories(sourcePath)){foreach(stringfinDirectory.GetFiles(d)){listBox1.Items.Add(f);}目录搜索(d);}}catch(Exceptionex){listBox1.Items.Add(ex.Message);}}}}Microsoft支持站点上有一个完整的示例这里的问题是您想从事件处理程序调用DirSearch,但看起来您正试图在事件处理程序中定义方法DirSearch。这是无效的。您需要按如下方式更改代码:privatevoidButton_Click_1(objectsender,RoutedEventArgse){stringsourcePath=@"C:temp";this.DirSearch(sourcePath);}privatevoidDirSearch(stringsDir){try{foreach(stringfinDirectory.GetFiles(sDir,txtFile.Text)){lstFilesFound.Items.Add(f);}foreach(Directory.GetDirectories(sDir)中的字符串d){this.DirSearch(d);}}catch(System.Exceptionexcpt){listBox1.Items.Add(ex.Message);使用GetDirectories()重载来接受SearchOption:string[]dirs=Directory.GetDirectories(path,"*",SearchOption.AllDirectories))foreach(dir){...}或更好EnumerateFiles():IEnumerablefiles=Directory.EnumerateFiles(path,"*.*",SearchOption.AllDirectories))foreach(files){...}请注意,它执行惰性文件系统扫描。以上就是C#学习教程:递归遍历目录树,列出文件名共享的所有内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
