Exemplo n.º 1
0
        private void OnFileChanged(object sender, EventArgs e)
        {
            var _e = (FileSystemEventArgs)e;

            //check if directory is excluded
            foreach (var ignored_dir in _excludedDirectories)
            {
                if (_e.FullPath.StartsWith(ignored_dir))
                {
                    return;
                }
            }

            string remotePath;
            string remoteFullPath;
            FtpOperationEventArgs ftpOperationArgs;

            switch (_e.ChangeType.ToString())
            {
            case "Deleted":
                remotePath     = _e.FullPath.Substring(_settings.LocalPath.Length);
                remotePath     = remotePath.Remove(remotePath.Length - _e.Name.Length, _e.Name.Length);
                remotePath     = remotePath.Replace("\\", "/");
                remoteFullPath = _settings.RemotePath + remotePath + _e.Name;
                _ftpClient.DeleteFile(remoteFullPath);
                ftpOperationArgs                = new FtpOperationEventArgs();
                ftpOperationArgs.Operation      = "deleted";
                ftpOperationArgs.RemoteFullPath = remoteFullPath;
                RaiseOnFtpOperationFinishedEvent(ftpOperationArgs);
                break;

            case "Created":
            case "Changed":
                remotePath     = _e.FullPath.Substring(_settings.LocalPath.Length);
                remotePath     = remotePath.Remove(remotePath.Length - _e.Name.Length, _e.Name.Length);
                remotePath     = remotePath.Replace("\\", "/");
                remoteFullPath = _settings.RemotePath + remotePath + _e.Name;
                var success = _ftpClient.UploadFile(_e.FullPath, remoteFullPath);
                if (success)
                {
                    ftpOperationArgs                = new FtpOperationEventArgs();
                    ftpOperationArgs.Operation      = "uploaded";
                    ftpOperationArgs.RemoteFullPath = remoteFullPath;
                    RaiseOnFtpOperationFinishedEvent(ftpOperationArgs);
                }
                else
                {
                    ftpOperationArgs                = new FtpOperationEventArgs();
                    ftpOperationArgs.Operation      = "failed to upload";
                    ftpOperationArgs.RemoteFullPath = remoteFullPath;
                    RaiseOnFtpOperationFinishedEvent(ftpOperationArgs);
                }

                break;

            default:
                break;
            }
        }
Exemplo n.º 2
0
 private static void OnFtpOperationFinished(object sender, FtpOperationEventArgs e)
 {
     Console.WriteLine("{0} {1} {2}", DateTime.Now, e.Operation, e.RemoteFullPath);
 }
Exemplo n.º 3
0
 protected virtual void RaiseOnFtpOperationFinishedEvent(FtpOperationEventArgs e)
 {
     FtpOperationFinished?.Invoke(this, e);
 }