【问题标题】:Browse to a Directory and have the Path stored in a string (C#)浏览到目录并将路径存储在字符串中(C#)
【发布时间】:2013-03-16 02:09:11
【问题描述】:

我正在尝试使用 Visual Studio 中的 WPF 在 C# 中制作这个程序。这基本上就是它必须做的。

当在主窗体上单击一个名为“浏览”的按钮时,它将打开一个新窗体/窗口,让用户可以浏览到他选择的任何目录。在他选择文件夹并单击“打开”(或该表单上的某个其他按钮)后,该目录的路径,例如“C:\temp”将存储在一个字符串变量中,以便以后使用。

我的第一个问题是,我在“浏览”按钮的偶数处理程序中写什么,它将打开一个窗口,让用户浏览并选择一个文件夹?是否有我可以使用的默认窗口,或者我必须为其创建一个新表单?请注意,用户必须选择一个文件夹,而不是像默认的“打开”窗口那样的文件。

其次,我如何引用一个字符串变量,以便它存储用户选择的目录的路径?

【问题讨论】:

    标签: c# string file-io dialog


    【解决方案1】:

    您要查找的类型是OpenFileDialog

    http://msdn.microsoft.com/en-us/library/system.windows.forms.openfiledialog.aspx

    基本用法如下

    using (FileDialog fileDialog = new OpenFileDialog()) {
      if (DialogResult.Ok == fileDialog.ShowDialog()) {
        string fileName = fileDialog.FileName;
        ...
      }
    }
    

    编辑

    评论澄清 OP 正在寻找打开一个目录与一个文件。为此,您需要FolderBrowseDialog

    var dialog = new System.Windows.Forms.FolderBrowserDialog();
    System.Windows.Forms.DialogResult result = dialog.ShowDialog();
    

    【讨论】:

    【解决方案2】:

    要选择目录,您应该使用FolderBrowserDialog。它是来自 WinForms 的控件。 WPF 没有它自己的。

    例如:

    var dialog = new FolderBrowserDialog();
    var result = dialog.ShowDialog();
    if (result == DialogResult.OK)
        // ...
    

    不要忘记添加对System.Windows.Forms 的引用。

    【讨论】:

    • 我如何使用 WPF 执行此操作,因为我正在为大学作业执行此操作,并且要求我使用 WPF?
    • WPF 没有自己的用于选择文件夹的对话框(您可以在其中看到目录树)。您只能从 WinForms 使用此类对话框(需要包含对 System.Windows.Forms 的引用)。我已经在答案中描述了这一点。
    【解决方案3】:

    只需在按钮单击上执行此操作

            FileDialog fileDialog = new OpenFileDialog();
            fileDialog.ShowDialog();
            folderpathTB.Text = fileDialog.FileName;
    

    (folderpathTB 是文本框的名称,我想在其中放置文件路径,或者您也可以将其分配给字符串变量)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-10
      相关资源
      最近更新 更多