0
1
2
3
4
5

Jef Raskin

using System.IO;
using System; 

class AJefRaskin
{
    static void Main(string[] args)
    {
        System.Console.WriteLine("Hello, AJefraskin");
        DirectoryContent();
    }

    static void AFileCopy(FileInfo f)
    {
        string s = "";
        s = "d:" + "\\" + f.DirectoryName.Substring(3);
        ATestDir(s);
        s += '\\' + f.Name;
        try
        {
            f.CopyTo(s, true);
        }
        catch (Exception ex)
        {
            Console.WriteLine("*** Ошибка от AJefRaskin.cs \n\r" + ex + "\n\r***");
        }
    }

    static void DirectoryContent()
    {
        DirectoryInfo oD = new DirectoryInfo(@"D:\0\1\2\3");
        Console.WriteLine("DIR:{0}\n", oD.FullName.ToString());

        foreach (FileInfo f in oD.GetFiles())
        {
            Console.WriteLine("Filename:{0}", f.FullName);
            AFileCopy(f);
        }

        foreach (DirectoryInfo d in oD.GetDirectories())
        {
            AProcessDirs(d);
        }
    }

    static void AProcessDirs(DirectoryInfo oD)
    {
        foreach (FileInfo f in oD.GetFiles())
        {
            Console.WriteLine("Filename: {0}", f.FullName);
            AFileCopy(f);
        }
        foreach (DirectoryInfo d in oD.GetDirectories())
        {
            AProcessDirs(d);
        }
    }

    static void ATestDir(string s)
    {
        Console.WriteLine("Hello ATestDir - " + s.ToString());

        DirectoryInfo d = new DirectoryInfo(s);

        if (d.Exists) return;
        d.Create();
        return;
    }
}