gpt4 book ai didi

c# - 如何复制文件,覆盖现有文件?

转载 作者:可可西里 更新时间:2023-11-01 03:04:30 24 4
gpt4 key购买 nike

<分区>

概览

如何使用 C# 将所有文件从一个目录复制到另一个目录并覆盖目标目录中所有现有的同名文件?

我有以下代码将文件从一个目录复制到另一个目录...

const string sourceDir = @"C:\AppProject\Smart\SmartStaff\site\document";
const string targetDir = @"C:\AppProject\Smart\ExternalSmartStaff\site\document";
foreach (var file in Directory.GetFiles(sourceDir))
File.Copy(file, Path.Combine(targetDir, Path.GetFileName(file)));

...,但是当目标目录已经包含一个与源目录中的文件同名的文件时,它会失败并出现错误 System.IO.IOException: The file 'C:\AppProject\Smart\ExternalSmartStaff\site\document\SomeDocument.txt' 已经存在。

详情

为了清楚起见,给定以下目录和其中的文件...

C:\>dir C:\AppProject\Smart\SmartStaff\site\document
...

Directory of C:\AppProject\Smart\SmartStaff\site\document

09/03/2014 06:38 PM <DIR> .
09/03/2014 06:38 PM <DIR> ..
05/25/2014 08:29 PM 44 SomeDocument.txt
05/25/2014 08:32 PM 21 SomeDocument2.txt
05/25/2014 08:36 PM 21 SomeDocument3.txt
05/25/2014 08:43 PM 44 SomeDocument4.txt
4 File(s) 130 bytes
2 Dir(s) 128,326,766,592 bytes free

C:\>dir C:\AppProject\Smart\ExternalSmartStaff\site\document
...

Directory of C:\AppProject\Smart\ExternalSmartStaff\site\document

09/03/2014 06:39 PM <DIR> .
09/03/2014 06:39 PM <DIR> ..
09/03/2014 06:39 PM 26 SomeDocument.txt
09/03/2014 06:39 PM 54 SomeDocument2.txt
2 File(s) 80 bytes
2 Dir(s) 128,326,766,592 bytes free

...,我希望 C:\AppProject\Smart\ExternalSmartStaff\site\document 在 C# 中复制文件后看起来像这样:

C:\>dir C:\AppProject\Smart\ExternalSmartStaff\site\document
...

Directory of C:\AppProject\Smart\ExternalSmartStaff\site\document

09/03/2014 06:47 PM <DIR> .
09/03/2014 06:47 PM <DIR> ..
05/25/2014 08:29 PM 44 SomeDocument.txt
05/25/2014 08:32 PM 21 SomeDocument2.txt
05/25/2014 08:36 PM 21 SomeDocument3.txt
05/25/2014 08:43 PM 44 SomeDocument4.txt
4 File(s) 130 bytes
2 Dir(s) 128,327,835,648 bytes free

如何避免 IOException 并完成此操作?

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com