需要更新c#中的图像文件

本文关键字:图像 文件 更新 | 更新日期: 2023-09-27 18:24:09

  1. 我在一个大文件夹中有800-1000个唯一命名的文件夹。

  2. 每个唯一命名的文件夹中都有另一个名为/images的文件夹。

  3. 每个图像文件夹中都有一个名为"Rock Star Site Design"的文件-{UNIQUEFOLDERNAME}-ca-logo.png"

  4. 我写了一个代码来替换我提供的.png文件中的所有.png文件(同时保留原始名称)。

文件夹结构和文件名需要保持不变。基本上,我用一个新文件更新旧文件,使用相同的(唯一的)名称,800-1000次。

我试着让代码正常工作,但有一个错误。Image文件夹里有很多图片,但我只需要更新"Rock Star网站设计"-{UNIQUEFOLDERNAME}-ca-logo.png"将每个文件夹归档。

有没有什么方法可以让我得到file.startwith("Rock Star")。这样我就可以更新我想要的特定文件了。

这是我的代码:

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));
        }

        foreach (var file in files)
        {
            if (!string.IsNullOrWhiteSpace(file))
            {
                File.Copy(Server.MapPath("ca-logo.jpg"), file,true);
            }
        }

    }
    catch (System.Exception excpt)
    {
        //MessageBox.Show(excpt.Message);
    }
    return files;
}

需要更新c#中的图像文件

您可以使用它来获取基于正则表达式的文件

Directory.GetFiles(sDir, "Rock-Star*.png");

Rock Star*.png表示以Rock Star开头的文件,*表示任何字符或字符序列,以.png 结束

首先使用Path.GetFileName()从文件完整路径获取文件名。然后使用StartsWith()。将文件添加到列表时,请检查文件名是否以所需名称开头,然后添加到列表中。

List<String> files = new List<String>();
foreach (string f in Directory.GetFiles(""))
{
   //Get file name from full file path
   string fileName = Path.GetFileName(f);
   //Get only the files starts with Rock-Star
   if (fileName.StartsWith("Rock-Star"))
      {
          files.Add(f);
      }
}

编辑

如果你想用大写和小写lette更新文件,那么你必须将StringComparison.OrdinalIgnoreCase枚举传递给你的StartsWith()方法

  //Get only the files starts with Rock-Star or rock-start 
  if (fileName.StartsWith("Rock-Star",StringComparison.OrdinalIgnoreCase))
      {
         files.Add(f);
      }

编辑

要获取所有子目录中的文件并进行替换,请将SearchOption.AllDirectories传递给GetFiles()方法。以下代码将在所有子目录中搜索具有.png扩展名的文件

foreach (string f in Directory.GetFiles(sDir, "*.png", SearchOption.AllDirectories))