// Возвращает список папок из "/Source/Urho3D/", отбрасывая лишние.
    static string[] НужныеПапки(string путь)
    {
        string[]      папки     = Directory.GetDirectories(путь);
        List <string> результат = new List <string>(папки.Length);

        foreach (string папка in папки)
        {
            if (!игнорируемыеПапки.Contains(Утилиты.ИмяПапки(папка)))
            {
                результат.Add(папка);
            }
        }
        return(результат.ToArray());
    }
    static void Main(string[] аргументы)
    {
        foreach (string папка in НужныеПапки(PATH))
        {
            // Создаем папку в текущей.
            string имяПапки = Утилиты.ИмяПапки(папка);
            if (!Directory.Exists("DotNet/" + имяПапки))
            {
                Directory.CreateDirectory("DotNet/" + имяПапки);
            }
            foreach (string файл in НужныеФайлы(папка))
            {
                Console.WriteLine(файл);

                string оригинальныйИсходник    = File.ReadAllText(файл);
                string преобразованныйИсходник = ЗаголовочныйФайл.Преобразовать(оригинальныйИсходник);

                string имяФайла = Path.GetFileName(файл);
                имяПапки = Утилиты.ИмяПапки(файл);
                File.WriteAllText("DotNet/" + имяПапки + "/" + имяФайла, преобразованныйИсходник);
            }
        }
    }