如何在wpf中存储从FolderBrowserDialog()中选择的目录名称?

时间:2015-08-24 21:23:00

标签: c# wpf directory messagebox

我有一个"设置"我的一个程序中的按钮,用于获取用户想要使用的目录。

在选择目录后,我希望能够返回三条信息。

  1. 所选目录的名称。
  2. 该目录中的文件数(只是文件,而不是其他目录)
  3. 包含目录中每个文件名称的列表。
  4. 我一直在查看this页面,我找到了GetFiles()方法,但我还没弄明白如何获取目录的名称。任何推动正确方向的人都会受到赞赏。

    这是我到目前为止所拥有的。

    public void SettingsButton(object sender, RoutedEventArgs e)
        {
            var dialog = new System.Windows.Forms.FolderBrowserDialog();
            System.Windows.Forms.DialogResult result = dialog.ShowDialog();
    
            if (result == System.Windows.Forms.DialogResult.OK)
            {
    
                string[] files = Directory.GetFiles(dialog.SelectedPath);
                MessageBox.Show("files found" + files.Length.ToString(), "Message");
            }
        }
    

    我知道上面的代码并没有返回文件的名称,但我知道如何做到这一点的粗略想法,我还没有实现它......所以我的问题只是关于将他们选择的目录存储为字符串。

2 个答案:

答案 0 :(得分:1)

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

此处的结果将包含所选文件夹。

答案 1 :(得分:1)

这是一个如何做到这一点的例子,一个简单的foreach:

    public void SettingsButton(object sender, RoutedEventArgs e)
        {
            var dialog = new System.Windows.Forms.FolderBrowserDialog();
            System.Windows.Forms.DialogResult result = dialog.ShowDialog();

            if (result == System.Windows.Forms.DialogResult.OK)
            {    
                string[] files = Directory.GetFiles(dialog.SelectedPath);

                string resultStr = string.Empty;
                foreach (String item in files)
                {
                    resultStr += item.ToString() + "\n";
                }

                MessageBox.Show("path:" + dialog.SelectedPath + "\n" + 
                                "files: " + files.Count().ToString() + "\n" + 
                                 resultStr, "Message");
            }
        }