0
   private void CopyAllFilesToButton_Click_1(object sender, EventArgs e)
    {
        folderBrowserDialog1.ShowDialog();

        foreach (var item in files)
        {
                File.Copy(item, folderBrowserDialog1.SelectedPath);
        }

    }

基本上,我有许多文件路径。我想将每个复制到一个特定的文件夹。我做了什么,我从工具箱中添加了 folderBrowserDialog 并将其放入按钮事件中。

当它到达 File.Copy 时,它会抛出那个尴尬的异常。为什么会这样,我该如何防止它?

4

2 回答 2

0

这里的工作解决方案:

private void buttonCopyFiles_Click(object sender, EventArgs e)
{
   OpenFileDialog od = new OpenFileDialog();
   string destDir = @"D:\dest";
   od.Multiselect = true;

   if (od.ShowDialog() == DialogResult.OK)
   {
      foreach (var file in od.FileNames)
      {
         File.Copy(file, Path.Combine(destDir, Path.GetFileName(file)));
      }               
   }
}

根据所选文件数和所选文件大小,您的应用可能会挂起一段时间

于 2011-06-07T07:15:50.427 回答
0

您没有指定要复制到的文件,这是异常的来源。

你在做File.Copy(item,folderBrownserDialog1.SelectedPath);,而你应该做 File.Copy(item,Path.Combine(folderBrownserDialog1.SelectedPath, item));

当然,如果列表item仅包含文件名,而不是文件的完整当前路径。如果是这种情况,您需要按照以下方式做一些事情:

        foreach (var item in files)
        {
            var fileName = new FileInfo(item);
            File.Copy(item, Path.Combine(folderBrownserDialog1.SelectedPath, fileName.Name));
        }
于 2011-06-05T18:53:29.937 回答