在Console Application中浏览文件夹

我目前必须编写代码以允许我读取文件夹的所有文件并将其写入控制台。 下面,我还有使用浏览器从目录中选择单个文件的代码。 我想知道如何使用浏览按钮选择文件夹。

用于检查所有文件的代码

foreach(var path in Directory.GetFiles(@"C:\Name\Folder\")) { Console.WriteLine(path); // full path Console.WriteLine(System.IO.Path.GetFileName(path)); // file name } 

代码打开对话框

 OpenFileDialog fileSelectPopUp = new OpenFileDialog(); fileSelectPopUp.Title = ""; fileSelectPopUp.InitialDirectory = @"c:\"; fileSelectPopUp.Filter = "All EXCEL FILES (*.xlsx*)|*.xlsx*|All files (*.*)|*.*"; fileSelectPopUp.FilterIndex = 2; fileSelectPopUp.RestoreDirectory = true; if (fileSelectPopUp.ShowDialog() == DialogResult.OK) { textBox1.Text = fileSelectPopUp.FileName; } 

首先,您需要添加对System.Windows.Forms引用

然后,将STAThread属性添加到main方法。 这表明您的程序是单线程的,并使其能够与COM组件一起使用(系统对话框使用)。

之后,只有您可以将FolderBrowserDialog与控制台应用程序一起使用

 static class Program { [STAThread] static void Main(string[] args) { FolderBrowserDialog fbd = new FolderBrowserDialog(); if (fbd.ShowDialog() == DialogResult.OK) { foreach (var path in Directory.GetFiles(fbd.SelectedPath)) { Console.WriteLine(path); // full path Console.WriteLine(System.IO.Path.GetFileName(path)); // file name } } } } 

用户FolderBrowserDialog

 FolderBrowserDialog b = new FolderBrowserDialog(); if(b.ShowDialog() == DialogResult.OK) { var folderName = b.SelectedPath; } 

虽然,为图像UI操作,你可以使用DotImaging.UI :

 string fileName = UI.OpenFile(); //open-file dialog