ExecutionEngineException
本文关键字:ExecutionEngineException | 更新日期: 2023-09-27 17:58:23
private void CopyAllFilesToButton_Click_1(object sender, EventArgs e)
{
folderBrowserDialog1.ShowDialog();
foreach (var item in files)
{
File.Copy(item, folderBrowserDialog1.SelectedPath);
}
}
基本上,我有很多文件路径。我想把每一个都复制到一个特定的文件夹中。我从工具箱中添加了folderBrowserDialog,并将其放入按钮事件中。
当它到达File.Copy时,它抛出了一个尴尬的异常…为什么会这样,我该如何阻止它?
您没有指定要复制到的文件,这就是异常的来源。
你在做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));
}
这里的工作解决方案:
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)));
}
}
}
根据所选文件数和所选文件大小,您的应用程序可能会挂起一段时间