Exemplo n.º 1
0
 void CurrentTransferQueue_QueueStarted(object sender, TransferQueue.QueueEventArgs e)
 {
     RemoteFolderPathWhenQueueStart = CurrentFolderPath;
     ShowStatusToolStripItems();
     this.BeginInvoke(new aaaSoft.Helpers.ThreadHelper.UnnamedDelegate(delegate
     {
         btnStartQueue.Enabled = false;
         btnStopQueue.Enabled  = true;
     }));
 }
Exemplo n.º 2
0
        void CurrentTransferQueue_QueueStoped(object sender, TransferQueue.QueueEventArgs e)
        {
            var tq = sender as TransferQueue;

            HidenStatusToolStripItems();
            this.BeginInvoke(new aaaSoft.Helpers.ThreadHelper.UnnamedDelegate(delegate
            {
                btnStartQueue.Enabled = lvQueue.Items.Count != 0;
                btnStopQueue.Enabled  = false;
            }));
            LogHelper.PushLog("用户中止", Color.Red);
        }
Exemplo n.º 3
0
        void CurrentTransferQueue_QueueCompleted(object sender, TransferQueue.QueueEventArgs e)
        {
            var tq = sender as TransferQueue;

            HidenStatusToolStripItems();
            this.BeginInvoke(new aaaSoft.Helpers.ThreadHelper.UnnamedDelegate(delegate
            {
                btnStartQueue.Enabled = lvQueue.Items.Count != 0;
                btnStopQueue.Enabled  = false;
            }));
            BeginListFolder(RemoteFolderPathWhenQueueStart);
            LogHelper.PushLog("队列已完成", Color.FromArgb(128, 0, 0));
            String LogStr = String.Format(
                "已处理 {0} 个文件, {1} 个目录, 总计 {2} 于 {3} 秒 ({4}/秒)"
                , tq.TransferedFileCount
                , tq.TransferedFolderCount
                , storageUnitStringConverting.GetString(tq.TransferedDataLength, 2, false) + "B"
                , tq.TransferUsedTime.TotalSeconds.ToString("N2")
                , storageUnitStringConverting.GetString(tq.AverageTransferSpeed, 2, false) + "B"
                );

            LogHelper.PushLog(LogStr, Color.FromArgb(128, 0, 0));
        }
Exemplo n.º 4
0
        void CurrentTransferQueue_QueueAdded(object sender, TransferQueue.QueueEventArgs e)
        {
            var tq = sender as TransferQueue;

            this.Invoke(new aaaSoft.Helpers.ThreadHelper.UnnamedDelegate(delegate
            {
                btnStartQueue.Enabled = tq.GetQueueItemCount() != 0 && tq.QueueState != TransferQueue.TransferQueueState.Running;

                Int32 itemIndex = lvQueue.Items.Count - CurrentTransferQueue.GetTransferQueueItemBackIndex(e.QueueItem);
                if (itemIndex > lvQueue.Items.Count || itemIndex < 0)
                {
                    return;
                }

                var item        = e.QueueItem;
                var newLvi      = lvQueue.Items.Insert(itemIndex, "");
                var ftpClient   = item.FtpClient;
                var ftpSiteData = (FtpSiteData)ftpClient.Tag;

                if (item.Type == TransferQueueItem.TransferQueueItemTypeEnum.Download)
                {
                    newLvi.Text = item.RemoteBaseFile.FullName;
                    newLvi.SubItems.Add(item.LocalPath);
                    if (item.RemoteBaseFile.IsFolder)
                    {
                        newLvi.SubItems.Add("<文件夹>");
                    }
                    else
                    {
                        newLvi.SubItems.Add(storageUnitStringConverting.GetString(item.RemoteBaseFile.Length, 2, false) + "B");
                    }

                    newLvi.SubItems.Add(String.Format("从 {0} 下载", ftpSiteData.DisplayName));
                    newLvi.Tag      = item;
                    newLvi.ImageKey = "Download";
                }
                else if (item.Type == TransferQueueItem.TransferQueueItemTypeEnum.Upload)
                {
                    newLvi.Text = item.LocalPath;
                    newLvi.SubItems.Add(item.RemotePath);
                    if (File.Exists(item.LocalPath))
                    {
                        var fileInfo = new FileInfo(item.LocalPath);
                        newLvi.SubItems.Add(storageUnitStringConverting.GetString(fileInfo.Length, 2, false) + "B");
                    }
                    else if (Directory.Exists(item.LocalPath))
                    {
                        var folderInfo = new DirectoryInfo(item.LocalPath);
                        newLvi.SubItems.Add("<文件夹>");
                    }
                    newLvi.SubItems.Add(String.Format("上传到 {0}", ftpSiteData.DisplayName));
                    newLvi.Tag      = item;
                    newLvi.ImageKey = "Upload";
                }
                else if (item.Type == TransferQueueItem.TransferQueueItemTypeEnum.Delete)
                {
                    newLvi.Text = item.RemoteBaseFile.Name;
                    newLvi.SubItems.Add(item.RemotePath);
                    if (item.RemoteBaseFile.IsFolder)
                    {
                        newLvi.SubItems.Add("<文件夹>");
                    }
                    else
                    {
                        newLvi.SubItems.Add(storageUnitStringConverting.GetString(item.RemoteBaseFile.Length, 2, false) + "B");
                    }
                    newLvi.SubItems.Add(String.Format("从 {0} 删除", ftpSiteData.DisplayName));
                    newLvi.Tag      = item;
                    newLvi.ImageKey = "Delete";
                }
            }));
        }
Exemplo n.º 5
0
        void CurrentTransferQueue_QueueRemoved(object sender, TransferQueue.QueueEventArgs e)
        {
            var tq = sender as TransferQueue;

            this.BeginInvoke(new aaaSoft.Helpers.ThreadHelper.UnnamedDelegate(delegate
            {
                btnStartQueue.Enabled = tq.GetQueueItemCount() != 0 && tq.QueueState != TransferQueue.TransferQueueState.Running;

                ListViewItem lvi = null;
                foreach (ListViewItem newLvi in lvQueue.Items)
                {
                    if (e.QueueItem.Equals(newLvi.Tag))
                    {
                        lvi = newLvi;
                        break;
                    }
                }

                if (lvi == null)
                {
                    return;
                }

                if (e.QueueItem.State == TransferQueueItem.TransferQueueItemStateEnum.Error)
                {
                    lvi.ImageKey = "Error";
                    LogHelper.PushLog(e.QueueItem.Tip, Color.Red);
                    return;
                }
                else if (e.QueueItem.State == TransferQueueItem.TransferQueueItemStateEnum.TransferComplete)
                {
                    var item      = e.QueueItem;
                    var ftpClient = item.FtpClient;

                    //显示传输成功日志
                    if (item.Type == TransferQueueItem.TransferQueueItemTypeEnum.Download)
                    {
                        if (item.RemoteBaseFile is FtpBaseFileInfo)
                        {
                            var baseFile  = item.RemoteBaseFile;
                            String logStr = String.Format("已传送: {0} {1} 于 {2} 秒 ({3}/秒)"
                                                          , baseFile.Name
                                                          , storageUnitStringConverting.GetString(baseFile.Length, 2, false) + "B"
                                                          , ftpClient.TransferUsedTime.TotalSeconds.ToString("N2")
                                                          , storageUnitStringConverting.GetString(ftpClient.AverageTransferSpeed, 1, false) + "B");
                            LogHelper.PushLog(logStr, Color.FromArgb(128, 0, 0));
                        }
                    }
                    else if (item.Type == TransferQueueItem.TransferQueueItemTypeEnum.Upload)
                    {
                        if (Directory.Exists(item.LocalPath))
                        {
                            var remoteFileName = aaaSoft.Helpers.IoHelper.GetFileOrFolderName(item.RemotePath, '/');
                            String logStr      = String.Format("已传送: {0} {1} 于 {2} 秒 ({3}/秒)"
                                                               , remoteFileName
                                                               , storageUnitStringConverting.GetString(ftpClient.TotalDataLength, 2, false) + "B"
                                                               , ftpClient.TransferUsedTime.TotalSeconds.ToString("N2")
                                                               , storageUnitStringConverting.GetString(ftpClient.AverageTransferSpeed, 1, false) + "B");
                            LogHelper.PushLog(logStr, Color.FromArgb(128, 0, 0));
                        }
                    }
                }
                //将此对象从lvQueue中移除
                lvQueue.Items.Remove(lvi);
            }));
        }