Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 浏览到目录并将路径存储在字符串中(C)_C#_String_File Io_Dialog - Fatal编程技术网

C# 浏览到目录并将路径存储在字符串中(C)

C# 浏览到目录并将路径存储在字符串中(C),c#,string,file-io,dialog,C#,String,File Io,Dialog,我正试图在VisualStudio中使用WPF用C编写这个程序。这基本上就是它必须做的 当在主窗体上单击一个名为Browse的按钮时,它将打开一个新的窗体/窗口,让用户浏览到他选择的任何目录。在他选择文件夹并单击该窗体上的“打开”或其他按钮后,该目录的路径(例如C:\temp)将存储在字符串变量中,以便以后使用 我的第一个问题是,我在浏览按钮的偶数处理程序中写了什么,它将打开一个窗口,让用户浏览并选择一个文件夹?是否有可以使用的默认窗口,或者是否必须为其创建新表单?请注意,用户必须选择一个文件夹

我正试图在VisualStudio中使用WPF用C编写这个程序。这基本上就是它必须做的

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

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


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

您要查找的类型是OpenFileDialog

基本用法如下

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

注释:OP希望打开一个目录而不是一个文件。为此,您需要FolderBrowseDialog


选择您应该使用的目录。这是WinForms的控件。WPF没有自己的产品

例如:

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

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

只需单击按钮即可

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

folderpathTB是文本框的名称,我想在其中放置文件路径,或者你也可以将其分配给一个字符串变量?我希望用户能够选择一个文件夹,而不是一个特定的文件。@SteveWay这也允许使用目录。还有一个FolderBrowser。我遇到了一系列错误。看起来像是WPF应用程序中的。试试这个例子,我如何用WPF来做这件事,因为我在大学里做作业,要求我使用WPF?WPF没有自己的对话框来选择目录树所在的文件夹。您只能从WinForms中使用此类对话框,因为需要包含对System.Windows.Forms的引用。我已经在回答中描述了这一点。
        FileDialog fileDialog = new OpenFileDialog();
        fileDialog.ShowDialog();
        folderpathTB.Text = fileDialog.FileName;