Peter Petrov’s Weblog

var me = from practice in programming where practice.IsBestPractice && practice.UseLambda select practice.OptimalPerformance;

Usuful methods – 11 of N – Copy/Move Directory September 12, 2008

Today I have to copy an entire directory including all files, sub directories and all sub files to another directory. The .NET framework doesn’t provide such method (at least I don’t know of it) so I have coded one myself. Here’s the implementation of the CopyDirectory method.

        public static void CopyDirectory(string source, string destination)
            if (destination[destination.Length - 1] != Path.DirectorySeparatorChar)
                destination += Path.DirectorySeparatorChar;
            if (!Directory.Exists(destination))
            var entries = Directory.GetFileSystemEntries(source);
            foreach (var e in entries)
                if (Directory.Exists(e))
                    CopyDirectory(e, destination + Path.GetFileName(e));
                    File.Copy(e, destination + Path.GetFileName(e), true);

MoveDirectory is very simple when we have CopyDirectory. I know it’s not as fast as it can be ( if we use File.Move()) but still it gets the job done.

        public static void MoveDirectory(string source, string destination)
            CopyDirectory(source, destination);

2 Responses to “Usuful methods – 11 of N – Copy/Move Directory”

  1. Toni Says:

    For moving directories, use DirectoryInfo.MoveTo()

  2. Toni Says:

    Or Directory.Move(). Also you might want to use Path.Combine() to avoid hacks like checking the last character of the path.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s