基于File.Copy Method,第二个参数是新文件名而不是目录:
目标文件的名称。这不能是目录或现有文件。
您需要使用类似的逻辑:
FileCopy(filestocopy[p],targetDir + "\\" + Path.GetFileName(filestocopy[p]));
此外,建议检查目录中是否已存在该文件:
if (!File.Exists(targetDir + "\\" + Path.GetFileName(filestocopy[p])))
FileCopy(filestocopy[p],targetDir + "\\" + Path.GetFileName(filestocopy[p]));
如果您需要覆盖任何现有文件,您可以add a boolean parameter:
FileCopy(filestocopy[p],targetDir + "\\" + Path.GetFileName(filestocopy[p]),true);
您需要为目标参数指定[文件目录] + [文件名] + [文件扩展名]
所以做这样的事情:
string destination = Path.Combine(targetDir, Path.GetFileName(filestocopy[p]));
File.Copy(filestocopy[p], destination);