/// <summary> /// Deletes an Ftp directory on the ftp server. /// </summary> private void DeleteDirectory() { if (string.IsNullOrEmpty(this.RemoteDirectoryName.Get(this.ActivityContext))) { throw new ArgumentException("Required parameter missing: RemoteDirectoryName."); } using (FtpConnection ftpConnection = this.CreateFtpConnection()) { ftpConnection.LogOn(); this.LogBuildMessage(string.Format(CultureInfo.CurrentCulture, "Deleting Directory: {0}", this.RemoteDirectoryName)); try { ftpConnection.DeleteDirectory(this.RemoteDirectoryName.Get(this.ActivityContext)); } catch (FtpException ex) { if (ex.Message.Contains("550")) { return; } this.LogBuildWarning(string.Format(CultureInfo.CurrentCulture, "There was an error deleting ftp directory: {0}. The Error Details are \"{1}\" and error code is {2} ", this.RemoteDirectoryName, ex.Message, ex.ErrorCode)); } } }
/// <summary> /// Download Files /// </summary> private void DownloadFiles() { using (FtpConnection ftpConnection = this.CreateFtpConnection()) { if (!string.IsNullOrEmpty(this.WorkingDirectory.Get(this.ActivityContext))) { if (!Directory.Exists(this.WorkingDirectory.Get(this.ActivityContext))) { Directory.CreateDirectory(this.WorkingDirectory.Get(this.ActivityContext)); } this.LogBuildMessage(string.Format(CultureInfo.CurrentCulture, "Setting Local Directory: {0}", this.WorkingDirectory.Get(this.ActivityContext)), BuildMessageImportance.Low); FtpConnection.SetLocalDirectory(this.WorkingDirectory.Get(this.ActivityContext)); } ftpConnection.LogOn(); if (!string.IsNullOrEmpty(this.RemoteDirectoryName.Get(this.ActivityContext))) { ftpConnection.SetCurrentDirectory(this.RemoteDirectoryName.Get(this.ActivityContext)); } this.LogBuildMessage("Downloading Files", BuildMessageImportance.Low); if (this.FileNames == null) { FtpFileInfo[] filesToDownload = ftpConnection.GetFiles(); foreach (FtpFileInfo fileToDownload in filesToDownload) { this.LogBuildMessage(string.Format(CultureInfo.CurrentCulture, "Downloading: {0}", fileToDownload), BuildMessageImportance.Low); ftpConnection.GetFile(fileToDownload.Name, false); } } else { foreach (string fileName in this.FileNames.Get(this.ActivityContext)) { try { this.LogBuildMessage(string.Format(CultureInfo.CurrentCulture, "Downloading: {0}", fileName), BuildMessageImportance.Low); ftpConnection.GetFile(fileName, false); } catch (FtpException ex) { this.LogBuildWarning(string.Format(CultureInfo.CurrentCulture, "There was an error downloading file: {0}. The Error Details are \"{1}\" and error code is {2} ", fileName, ex.Message, ex.ErrorCode)); } } } } }
/// <summary> /// Upload Files /// </summary> private void UploadFiles() { if (this.FileNames == null) { throw new ArgumentException("Required parameter missing: FileNames."); } using (FtpConnection ftpConnection = this.CreateFtpConnection()) { this.LogBuildMessage("Uploading Files", BuildMessageImportance.Low); if (!string.IsNullOrEmpty(this.WorkingDirectory.Get(this.ActivityContext))) { this.LogBuildMessage(string.Format(CultureInfo.CurrentCulture, "Setting Working Directory: {0}", this.WorkingDirectory.Get(this.ActivityContext)), BuildMessageImportance.Low); FtpConnection.SetLocalDirectory(this.WorkingDirectory.Get(this.ActivityContext)); } ftpConnection.LogOn(); if (!string.IsNullOrEmpty(this.RemoteDirectoryName.Get(this.ActivityContext))) { this.LogBuildMessage(string.Format(CultureInfo.CurrentCulture, "Setting Current Directory: {0}", this.RemoteDirectoryName.Get(this.ActivityContext)), BuildMessageImportance.Low); ftpConnection.SetCurrentDirectory(this.RemoteDirectoryName.Get(this.ActivityContext)); } foreach (string fileName in this.FileNames.Get(this.ActivityContext)) { try { if (File.Exists(fileName)) { this.LogBuildMessage(string.Format(CultureInfo.CurrentCulture, "Uploading: {0}", fileName), BuildMessageImportance.Low); ftpConnection.PutFile(fileName); } } catch (FtpException ex) { this.LogBuildWarning(string.Format(CultureInfo.CurrentCulture, "There was an error uploading file: {0}. The Error Details are \"{1}\" and error code is {2} ", fileName, ex.Message, ex.ErrorCode)); } } } }
/// <summary> /// Delete given files from the FTP Directory /// </summary> private void DeleteFiles() { if (this.FileNames == null) { throw new ArgumentException("Required parameter missing: RemoteDirectoryName."); } using (FtpConnection ftpConnection = this.CreateFtpConnection()) { ftpConnection.LogOn(); this.LogBuildMessage("Deleting Files", BuildMessageImportance.Low); if (!string.IsNullOrEmpty(this.RemoteDirectoryName.Get(this.ActivityContext))) { this.LogBuildMessage(string.Format(CultureInfo.CurrentCulture, "Setting Current Directory: {0}", this.RemoteDirectoryName.Get(this.ActivityContext)), BuildMessageImportance.Low); ftpConnection.SetCurrentDirectory(this.RemoteDirectoryName.Get(this.ActivityContext)); } foreach (string fileName in this.FileNames.Get(this.ActivityContext)) { try { this.LogBuildMessage(string.Format(CultureInfo.CurrentCulture, "Setting Current Directory: {0}", this.RemoteDirectoryName), BuildMessageImportance.Low); ftpConnection.DeleteFile(fileName); } catch (FtpException ex) { if (ex.Message.Contains("550")) { continue; } this.LogBuildWarning(string.Format(CultureInfo.CurrentCulture, "There was an error in deleting file: {0}. The Error Details are \"{1}\" and error code is {2} ", fileName, ex.Message, ex.ErrorCode)); } } } }