public static void CopyFileOrDir(string src, string dst) { if (Directory.Exists(src)) { foreach (string directory in Directory.GetDirectories(src)) { string dst1 = dst + Path.DirectorySeparatorChar.ToString() + Path.GetFileName(directory); UtilFile.CopyFileOrDir(directory, dst1); } foreach (string file in Directory.GetFiles(src)) { UtilFile.CopyFileOrDir(file, dst); } } else { if (!File.Exists(src)) { return; } UtilFile.EnsureDir(dst); string destFileName = dst + Path.DirectorySeparatorChar.ToString() + Path.GetFileName(src); File.Copy(src, destFileName); } }