C#

[ C#]ログの世代管理

実務にてiniに記載したログの世代管理数/サイズを取得して、ログの世代管理を行う必要があるのですが、良いサンプルコードはないでしょうか。。
⇒作ってみました

Program.cs
        public static void LogGenerateMng()
        {
            long Generation = 5;
            string LogFileName = "LogFile";
            string LogPath = @"c:\test\LOG\";
            string Extention = ".log";

            /**************************************************************/
            // 世代管理開始
            /**************************************************************/
            for (long i = Generation; 0 < i; i--)
            {
                // 指定された最大世代ループ時
                if (i == Generation)
                {
                    string target = LogPath + LogFileName + i.ToString().PadLeft(2, '0') + Extention;

                    // 存在する場合は削除(最大サイズだから)
                    if (File.Exists(target))
                    {
                        File.Delete(target);
                    }
                }

                // 最大未満~当世代未満の場合
                if (1 < i && i < Generation)
                {
                    string target = LogPath + LogFileName + i.ToString().PadLeft(2, '0') + Extention;

                    // 存在する場合はコピーして削除
                    if (File.Exists(target))
                    {
                        // 2世代目の場合
                        if(i == 2)
                        {
                            // 1世代上のファイルがあればコピーして削除
                            if (File.Exists(LogPath + LogFileName + Extention))
                            {
                                File.Copy(target, LogPath + LogFileName + (i + 1).ToString().PadLeft(2, '0') + Extention);
                                File.Delete(target);
                            }
                        }
                        else
                        {
                            // 1世代上のファイルがあればコピーして削除
                            if (File.Exists(LogPath + LogFileName + (i - 1).ToString().PadLeft(2, '0') + Extention))
                            {
                                File.Copy(target, LogPath + LogFileName + (i + 1).ToString().PadLeft(2, '0') + Extention);
                                File.Delete(target);
                            }
                        }
                    }
                }

                // 当世代の場合
                if (i == 1)
                {
                    string target = LogPath + LogFileName + Extention;

                    // 存在する場合はコピーして削除して当世代新規作成
                    if (File.Exists(target))
                    {
                        File.Copy(target, LogPath + LogFileName + (i + 1).ToString().PadLeft(2, '0') + Extention);
                        File.Delete(target);
                        File.Create(target).Close();
                    }
                }

            }
        }