<p>I want to copy the entire contents of a directory from one location to another in C#.</p>

<p>There doesn't appear to be a way to do this using <code>System.IO</code> classes without lots of recursion.</p>

<p>There is a method in VB that we can use if we add a reference to <code>Microsoft.VisualBasic</code>:</p>

<pre><code>new Microsoft.VisualBasic.Devices.Computer().
    FileSystem.CopyDirectory( sourceFolder, outputFolder );
</code></pre>

<p>This seems like a rather ugly hack. Is there a better way?</p>

Or, if you want to go the hard way, add a reference to your project for Microsoft.VisualBasic and then use the following:
```
```
Microsoft.VisualBasic.FileIO.FileSystem.CopyDirectory(fromDirectory, toDirectory);
```
```
However, using one of the recursive functions is a better way to go since it won't have to load the VB dll.