public DirectoryInfo CopyToCurrent(DirectoryInfo appDir) { var currentDir = Path.Combine(appDir.Parent.FullName, "current"); if (appDir.Exists) { try { this.Log().Info(String.Format("Moving {0} directory to current", appDir.Name)); if (Directory.Exists(currentDir)) { try { Utility.EmptyDirectory(currentDir); } catch (Exception e) { this.Log().Info("Failed to empty current directory, will try to override files"); } } else { Directory.CreateDirectory(currentDir); } Utility.CopyDirectory(appDir, new DirectoryInfo(currentDir)); } catch (Exception e) { this.Log().InfoException("Failed to move files to current directory", e); } } if (!Directory.Exists(currentDir)) { return(null); } return(new DirectoryInfo(currentDir)); }