我在一个大文件夹中有1,000个唯一命名的文件夹。
在每个唯一命名的文件夹中,这些文件夹是另一个名为/ images的文件夹。
每个图像文件夹中都有一个名为"Read-Web-Site-Design-{UNIQUEFOLDERNAME}-ca-logo.png"的文件
我想从我提供的.png文件中替换1768个.png文件(同时保留原始名称)。


文件夹结构和文件名需要保持不变。基本上,我使用相同(唯一)名称将新文件更新为旧文件1,000次。

我已经编写了这段代码,可以循环访问所有文件和目录,但是我想知道如何在这里更新文件,请检查我的代码:

private List<String> DirSearch(string sDir)
{
List<String> files = new List<String>();
try
{
    foreach (string f in Directory.GetFiles(sDir))
    {
        files.Add(f);

    }
    foreach (string d in Directory.GetDirectories(sDir))
    {
        files.AddRange(DirSearch(d));
    }
}
catch (System.Exception excpt)
{
    //MessageBox.Show(excpt.Message);
}

return files;
}

最佳答案

只需要做一个File.Copy()用提供的新.png文件替换旧文件。

假设您将要在列表中替换所有文件,

  List<String> files = new List<String>();

    foreach (var file in files)
    {
        if (!string.IsNullOrWhiteSpace(file))
        {
            File.Copy("New File Path", "file to be replaced", true);
        }
    }


看到,您正在传递true作为Copy()方法的第三个参数,如果目标路径中已经有文件,则该参数将被覆盖。

或者您可以使用File.Replace()。您可以在此处保留原始文件作为备份。

File.Replace("New File", "File to be replaced", "Back up of Original File");

关于c# - 用新文件更新文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17761445/

10-12 07:40
查看更多