【问题标题】:browse for folder in Console Application在控制台应用程序中浏览文件夹
【发布时间】:2013-02-22 14:29:42
【问题描述】:

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

检查所有文件的代码

  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;
            }

【问题讨论】:

标签: c# file-upload


【解决方案1】:

用户FolderBrowserDialog

FolderBrowserDialog b = new FolderBrowserDialog();

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

【讨论】:

    【解决方案2】:

    首先你需要添加对System.Windows.Forms的引用

    然后,在main方法中添加STAThread属性。这表明您的程序是单线程的,并使其能够与 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
                }
            }
    
    
        }
    }
    

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

      • 为此,您需要将您的主函数(或者您的调用函数)标记为 [STAThreadAttribute]
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多