在控制台应用程序中浏览文件夹

本文关键字:浏览 文件夹 应用程序 控制台 | 更新日期: 2023-09-27 18:02:48

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

代码检查所有文件

  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 Attribute添加到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