private void PullFolders(Guid appKey, Guid newVersionKey, bool create = false, bool clean = true) { var appsController = new Apps(config); var app = appsController.GetApp(appKey); var targetDirectory = new DirectoryInfo(config.DeploymentDirectory + "\\" + app.DeploymentDirectory); if (!targetDirectory.Exists) { if (create) { targetDirectory.Create(); targetDirectory.Refresh(); } else { throw new AppDeploymentException(string.Format("Failed pulling version \"{0}\" for app \"{1}\".", newVersionKey, appKey)); } } var folderContent = targetDirectory.EnumerateFileSystemInfos(); if (folderContent.Count() > 0) { foreach (var item in folderContent) { if (item.GetType() == typeof(DirectoryInfo)) { (item as DirectoryInfo).Delete(true); } else { item.Delete(); } } } var versionsController = new Versions(config); versionsController.PullVersion(newVersionKey, targetDirectory); }