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

コピー先のファイルを指定していません。これは、例外の発生元です。

あなたがしている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 に答える
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 に答える