private void CopyFromFSToFtp(string source, string destination) { source = source.Replace('\\', '/'); DirectoryInfo sourceDir = new DirectoryInfo(source); FtpClient ftpDestination = new FtpClient(destination, new FtpUser()); FileInfo[] files = sourceDir.GetFiles(); foreach (FileInfo file in files) { if (!ftpDestination.IsExist(Path.Combine(destination, file.Name))) { ftpDestination.UploadFile(String.Format("{0}/{1}", source, file.Name), file.Name); } else { ftpDestination.DeleteFile(file.Name); ftpDestination.UploadFile(source, file.Name); } } DirectoryInfo[] dirs = sourceDir.GetDirectories(); foreach (DirectoryInfo dir in dirs) { if (!ftpDestination.IsExist(dir.Name)) { ftpDestination.MakeDirectory(dir.Name); } else { ftpDestination.RemoveDirectory(dir.Name); ftpDestination.MakeDirectory(dir.Name); } string destinationDir = Path.Combine(destination, dir.Name); CopyFromFSToFtp(Path.Combine(source, dir.Name), destinationDir); } }
public Sync(TypeCnnection source, TypeCnnection target) { this.source = source; this.target = target; pathToFileBuffer = String.Format("{0}/{1}", Directory.GetParent(Directory.GetParent(Directory.GetCurrentDirectory()).FullName).FullName, "FileBuffer"); pathToFileBuffer = pathToFileBuffer.Replace('\\', '/'); }