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('\\', '/');
 }