示例#1
0
文件: FtpLib.cs 项目: sr457/modsync
 // progress feedback
 private void HandleProgress(object sender, BytesTransferredEventArgs e)
 {
     if (BytesTotal == 0)
     {
         return;
     }
     try
     {
         // bug in edtFTPnet: path incorrect, so we need to check filename as well as size
         if ((e.RemoteFile != LastFile) || (e.ByteCount < BytesLast))
         {
             BytesDone += BytesLast;
         }
         LastFile  = e.RemoteFile;
         BytesLast = e.ByteCount;
         int perc = (int)((long)100 * (BytesDone + BytesLast) / BytesTotal);
         if (perc > 100)
         {
             perc = 100;
         }
         ShowProgress(perc);
     }
     catch
     {
     }
 }
示例#2
0
 void ftp_BytesTransferred(object sender, BytesTransferredEventArgs e)
 {
     if (e.RemotePath != filePath1 && e.RemotePath != filePath2)
     {
         throw new ApplicationException("Invalid path in ftp_BytesTransferred\n\tExpected: " + filePath1 + " or " + filePath2 + "\n\tWas:     " + e.RemotePath);
     }
     bytesTransferred = true;
 }
示例#3
0
 /// <summary>
 /// Logs count of bytes transferred via event
 /// </summary>
 internal void CancelBytesTransferred(object obj, BytesTransferredEventArgs args)
 {
     if (!cancelled)
     {
         log.Debug("BytesTransferred: cancelling transfer");
         ftp.CancelTransfer();
         cancelled = true;
     }
 }
示例#4
0
 private void FtpBytesTransferred(object sender, BytesTransferredEventArgs e)
 {
     if (gAbortTask)
     {
         FTPClient ftp = (FTPClient)sender;
         gbErrorGeneratedByFtpStop = true;
         ftp.QuitImmediately();
     }
     gTaskProgressDetail.SetProgress(e.ByteCount, glFtpByteToTransfer);
 }
示例#5
0
 private void Local_OnUploadBytesTransferred(object sender, BytesTransferredEventArgs e)
 {
     try
     {
         double fraction = Convert.ToDouble(e.BytesTransferred) / Convert.ToDouble(e.Length);
         double percent  = Math.Round(fraction, 4);
         Console.WriteLine($"{e.Filename} - {percent} % complete.");
     }
     catch (Exception ex)
     {
         Console.WriteLine($"Exception OnUploadBytesTransferred event - {ex.Message}");
     }
 }
            /// <summary>
            /// callback from the ftp library when some data has been transferred
            /// We just send a message to the current window so it can update its status
            /// </summary>
            /// <param name="ftpClient"></param>
            /// <param name="bytesTransferred"></param>
            private void OnBytesTransferred(object ftpClient, BytesTransferredEventArgs bytesTransferred)
            {
                try
                {
                    BytesTransferred = bytesTransferred.ByteCount;

                    GUIMessage msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_FILE_DOWNLOADING, 0, 0, 0, 0, 0, null);
                    msg.Label  = OriginalRemoteFileName;
                    msg.Label2 = LocalFileName;
                    msg.Param1 = (int)(BytesTransferred + BytesOffset);
                    GUIGraphicsContext.SendMessage(msg);
                }
                catch (Exception ex)
                {
                    Log.Error(ex);
                }
            }
示例#7
0
        private void OnBytesTransferred(object sender, BytesTransferredEventArgs e)
        {
            if (OnTransfering == null)
            {
                return;
            }

            this.TransferredSize = this.TargetOriginalFileSize + e.ByteCount;

            TransferEventArgs arg = new TransferEventArgs();

            arg.TransferStatus  = Status.Transfering;
            arg.FileSize        = this.FileSize;
            arg.TransferredSize = this.TransferredSize;
            arg.Exception       = null;

            OnTransfering(sender, arg);
        }
示例#8
0
        void FtpClientEx_BytesTransferred(object sender, BytesTransferredEventArgs e)
        {
            long Cnt = e.ByteCount;

            if (BytesTransferredEx != null)
            {
                int Percent = 0;
                if (_FSize != 0)
                {
                    Percent = (int)((double)e.ByteCount / (double)_FSize * 100);
                    TimeSpan ts = BaseDownloader.CalcTimeLeft(start_time, _FSize, Cnt);
                    BytesTransferredEx(Percent, ts, BaseDownloader.CalcSpeed(start_time, Cnt));
                }
                else
                {
                    BytesTransferredEx(0, TimeSpan.Zero, BaseDownloader.CalcSpeed(start_time, Cnt));
                }
            }
        }
 private void Remote_OnDownloadBytesTransferred(object sender, BytesTransferredEventArgs e)
 {
     OnDownloadBytesTransferred?.Invoke(this, e);
 }
示例#10
0
 /// <summary>
 /// Logs count of bytes transferred via event
 /// </summary>
 internal void BytesTransferred(object obj, BytesTransferredEventArgs args)
 {
     log.Debug("Transferred: " + Convert.ToString(args.ByteCount));
 }