【问题标题】:C# saving mulitple filenames from OpenFileDialogC# 从 OpenFileDialog 保存多个文件名
【发布时间】:2015-05-14 18:11:36
【问题描述】:

我有一个带有添加按钮的表单。单击时,用户从对话框中选择一个或多个文件。

我的目标:

检索用户选择的所有文件的名称(从他们的文件所在的任何目录),将这些文件复制到用户没有使用 File.Copy 选择的指定文件夹中(我硬编码文件路径和文件名)。

我的问题:

如果用户只选择一个,这可以正常工作。例如:

string name = System.IO.Path.GetFileName(sfd.FileName);

这会抓取文件。那么:

            DialogResult dialogResult = MessageBox.Show("Is this published?", "", MessageBoxButtons.YesNo);
            if (dialogResult == DialogResult.Yes)
            {
                Directory.CreateDirectory("c:\\NewTest\\" + txtAcronym.Text + "\\" + txtMajor.Text + "." + txtMinor.Text + "\\Published");
                File.Copy(sfd.FileName, "c:\\NewTest\\" + txtAcronym.Text + "\\" + txtMajor.Text + "." + txtMinor.Text + "\\Published\\" + name);
            }
            else if (dialogResult == DialogResult.No)
            {
                Directory.CreateDirectory("c:\\NewTest\\" + txtAcronym.Text + "\\" + txtMajor.Text + "." + txtMinor.Text + "\\NonPublished");
                File.Copy(sfd.FileName, "c:\\NewTest\\" + txtAcronym.Text + "\\" + txtMajor.Text + "." + txtMinor.Text + "\\NonPublished\\" + name);
            }

我询问用户文档是否已发布。根据答案,它将创建一个目录并将文件放在该目录中。

是否可以在 openFileDialog 中遍历多个文件名并将它们全部放在一个文件夹中,而不仅仅是一个?

【问题讨论】:

标签: c# openfiledialog


【解决方案1】:

将多选设置为 true。

myFileDialog.Multiselect = true;

当用户接受选择时,您可以使用FileNames 属性获取它们。它返回一个 string[]。请注意与返回 stringFileName 的区别。您可以使用 for 或 foreach 来获取所有结果。

foreach (string file in myFileDialog.FileNames)
{
    //do work
}

【讨论】:

    猜你喜欢
    • 2010-11-21
    • 2021-05-02
    • 2011-06-10
    • 1970-01-01
    • 2012-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多