0
  1. 1 つの大きなフォルダーに 800 ~ 1000 個の一意の名前のフォルダーがあります。

  2. 一意の名前が付けられた各フォルダーの内部には、/images という名前の別のフォルダーがあります。

  3. そして、各画像フォルダの中に「Rock-Star-Site-Design-{UNIQUEFOLDERNAME}-ca-logo.png」という名前のファイルがあります

  4. 私が提供する.pngファイルからすべての.pngファイルを(元の名前を維持しながら)置き換えるコードを書きます。

フォルダー構造とファイル名は同じままにする必要があります。基本的に、同じ(一意の)名前を800〜1000回使用して、古いファイルを新しいファイルで更新しています。

私が試したコードは正常に動作しましたが、1 つの間違いがあります。Image フォルダー内にはたくさんの画像がありますが、フォルダーごとに「Rock-Star-Site-Design-{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;
}
4

2 に答える 2

4

これを使用して、正規表現に基づいてファイルを取得できます

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

Rock-Star*.png は Rock-Star で始まるファイルを意味し、* は .png で終わる任意の文字または文字列を意味します

于 2013-07-21T06:35:27.260 に答える