OpenFileDialog 从文本框多选目标路径

OpenFileDialog multiselect targetpath from textbox

大家好,

我想用 openfiledialog 将多个选定的文件复制到定义为 @"C:\TestFolder\"+ textBox1.Text 的文件夹中。我的问题是程序以某种方式也在文件名中写入文本框内容。

请在下面找到我的代码:

private void button3_Click(object sender, EventArgs e)
{
    OpenFileDialog od = new OpenFileDialog();
    od.Filter = "All files (*.*)|*.*";
    od.Multiselect = true;
    if (od.ShowDialog() == System.Windows.Forms.DialogResult.OK)
    {
        string targetPath = @"C:\TestFolder\"+ textBox1.Text;
        string path = System.IO.Path.Combine(targetPath, textBox1.Text);

        if (!System.IO.Directory.Exists(targetPath)
        {
            System.IO.Directory.CreateDirectory(targetPath);
        } 
        foreach (string fileName in od.FileNames)
        {            
            System.IO.File.Copy(fileName, path + System.IO.Path.GetFileName(fileName));
        } 
    }
}

如有任何意见,我们将不胜感激!

这些东西是等价的。

string targetPath = @"C:\TestFolder\"+ textBox1.Text;
string path = System.IO.Path.Combine(targetPath, textBox1.Text);

我会放弃第一个用于 Path.Combine 调用,因为它在分隔符方面便携且稳健。

试试这个:

 string Main_dir = @"C:\TestFolder\";
 string Sub_dir = textBox1.Text + @"\";
 string targetPath = System.IO.Path.Combine(Main_dir, Sub_dir);
      {
           if (!System.IO.Directory.Exists(targetPath))
      {
           System.IO.Directory.CreateDirectory(targetPath);
      }
           foreach (string fileName in od.FileNames)

           System.IO.File.Copy(fileName, targetPath + System.IO.Path.GetFileName(fileName), true);
      }

缺少反斜杠

  • @"\"