Jak zkopírovat adresář včetně podadresářů
.NET Framework nemá vestavěnou funkci pro kopírování adresáře včetně podadresářů.
Řešení je vytvoření jedné rekurzivní funkce, která očekává dva parametry.
Příklad
// Copy directory including subdirectories
public void CopyDirectory(string strSourceDirectory, string strDestinationDirectory)
{
string[] strFiles;
if (strDestinationDirectory[strDestinationDirectory.Length - 1] != Path.DirectorySeparatorChar)
{
strDestinationDirectory += Path.DirectorySeparatorChar;
}
if ( Directory.Exists(strDestinationDirectory) == false )
{
Directory.CreateDirectory(strDestinationDirectory);
}
strFiles = Directory.GetFileSystemEntries(strSourceDirectory);
foreach (string strDirItem in strFiles)
{
// Sub directories
if (Directory.Exists(strDirItem) == true)
{
CopyDirectory(strDirItem, strDestinationDirectory + Path.GetFileName(strDirItem));
}
else
{
File.Copy(strDirItem, strDestinationDirectory + Path.GetFileName(strDirItem), true);
}
}
}