0

我正在使用 Windows.Forms 应用程序,我可以使用OpenFileDialog或从我的用户那里获取文件或目录FolderBrowserDialog。但我需要在一个独特的对话中得到两者。我尝试使用OpenFileDialog.multselect = true选择文件和文件夹,但是在我访问OpenFileDialog.FileNames此属性的代码中,该属性只返回一个文件名,而不是一个选定的目录。

System.IO.Directory在调用GetFileSystemEntries中存在一个完全符合我要求的静态方法。但我需要一个对话框来做到这一点。

任何人都可以帮助我吗?

4

4 回答 4

0
private void button1_Click(object sender, EventArgs e)
        {
            if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                string[] files = openFileDialog1.FileNames;

                if (files != null && files.Length > 0)
                {
                    // returns the root directory
                    string folder = System.IO.Path.GetDirectoryName(files[0]);

                    // Obtain the file system entries in the directory path.
                    string[] directoryEntries =
                        System.IO.Directory.GetFileSystemEntries(folder); 
                }
            }

        }
于 2012-06-10T22:53:19.833 回答
0

尝试 :

string baseFolder = System.IO.Directory.GetParent(strToFile).ToString();

这将为您提供文件的文件夹名称。

于 2012-06-10T22:06:10.240 回答
0

仅使用一个 dialog() 无法获取文件夹和文件。

根据微软关于 c# 的文档,您必须使用不同的对话框来选择文件夹和文件

于 2012-06-11T02:41:26.830 回答
0

或使用 FileInfo!

FileInfo fi = new FileInfo(strToFile);
string fileFolder = fi.DirectoryName;
于 2012-06-10T22:24:08.287 回答