- inputDir
* hit0.png
* hit100.png
* hit300.png
- outputDir
* hit0.png
* hit100.png
* hit300.png
我要做的是首先重命名 outputDir 中的所有文件,以便它们在扩展名之前在其名称末尾包含字符“bak”,然后复制所有文件 inputDir 到 outputDir 的文件。简而言之,我希望它看起来像这样:
- inputDir
* hit0.png
* hit100.png
* hit300.png
- outputDir
* hit0.png
* hit0bak.png
* hit100.png
* hit100bak.png
* hit300.png
* hit300bak.png
到目前为止,我已尝试为每个文件单独执行此操作,并且工作正常;但是,为20个以上的文件编写相同的代码是很多单调的工作,所以我很想知道是否有更快的方法在C#中完成它(是的,我需要在C#中完成它,因为程序比我在这里写的更多,但我已经涵盖了其他一切)。 提前感谢您的帮助。
这就是我到目前为止所尝试的:
if (File.Exists(outputDir + "\\" + "hit0.png"))
{
File.Move(outputDir + "\\" + "hit0.png", outputDir + "\\" + "hit0bak.png");
File.Move(outputDir + "\\" + "hit100.png", outputDir + "\\" + "hit100bak.png");
File.Move(outputDir + "\\" + "hit300.png", outputDir + "\\" + "hit300bak.png");
}
File.Copy(inputDir + "\\" + "hit0.png", outputDir + "\\" + "hit0.png");
File.Copy(inputDir + "\\" + "hit100.png", outputDir + "\\" + "hit100.png");
File.Copy(inputDir + "\\" + "hit300.png", outputDir + "\\" + "hit100.png");
答案 0 :(得分:0)
var sourcePath = @"c:\source\path";
var destPath = @"c:\dest\path";
var sourceDirInfo = new System.IO.DirectoryInfo(sourcePath);
foreach (var sourceFileInfo in sourceDirInfo.GetFiles())
{
if (File.Exists(Path.Combine(destPath, sourceFileInfo.Name)))
{
var bakName = sourceFileInfo.Name.Replace(".", "bak.");
File.Move(Path.Combine(destPath, sourceFileInfo.Name),
Path.Combine(destPath, bakName));
}
File.Copy(Path.Combine(sourcePath, sourceFileInfo.Name),
Path.Combine(destPath, sourceFileInfo.Name));
}
(警告 - 仅适用于文件名中包含一个'。')