163 lines
5.3 KiB
C#
163 lines
5.3 KiB
C#
using Net;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
using TouchSocket.Dmtp.FileTransfer;
|
|
|
|
namespace FileSend
|
|
{
|
|
public partial class PushFilePanel : Form
|
|
{
|
|
public PushFilePanel(int num)
|
|
{
|
|
InitializeComponent();
|
|
Log.LogEvent += UpdateLog;
|
|
progressBar_PushProgress.Value = 0;
|
|
label_PushProgress.Text = string.Empty;
|
|
}
|
|
|
|
private void UpdateLog(string obj)
|
|
{
|
|
listView_Log.Items.Add(obj);
|
|
}
|
|
|
|
private void button_ClearLog_Click(object sender, EventArgs e)
|
|
{
|
|
listView_Log.Clear();
|
|
}
|
|
|
|
private void button_ChooseFile_Click(object sender, EventArgs e)
|
|
{
|
|
OpenFileDialog fileDialog = new OpenFileDialog();
|
|
fileDialog.Filter = "全部文件(*.*)|*.*"; // "DataBank(*.xml)|*.xml|全部文件(*.*)|*.*"
|
|
fileDialog.InitialDirectory = NetHelper.ServerRootPath;
|
|
fileDialog.Multiselect = true;
|
|
fileDialog.ShowDialog();
|
|
listView_Files.Scrollable = true;
|
|
listView_Files.View = View.Details;
|
|
listView_Files.Columns.Clear();
|
|
var columnHeader = new ColumnHeader("FileName");
|
|
columnHeader.Name = "FileName";
|
|
columnHeader.Text = "FileName";
|
|
listView_Files.Columns.Add(columnHeader);
|
|
columnHeader.Width = listView_Files.Width - 20;
|
|
// Control t = listView_Files;
|
|
// while (t.Parent != null)
|
|
// t = t.Parent;
|
|
// t.SizeChanged += (o, args) =>
|
|
// {
|
|
// columnHeader.Width = listView_Files.Width-20;
|
|
// };
|
|
foreach (var fileName in fileDialog.FileNames)
|
|
{
|
|
var split = fileName.Split(@"\");
|
|
var listViewItem = new ListViewItem(fileName);
|
|
listView_Files.Items.Add(listViewItem);
|
|
pushFileInfos.Add(new PushFileInfo()
|
|
{
|
|
fileName = split[^1],
|
|
filePath = fileName,
|
|
index = listView_Files.Items.Count - 1
|
|
});
|
|
}
|
|
|
|
label_ChooseCount.Text = $@"共选择了{fileDialog.FileNames.Length}个文件!";
|
|
if (fileDialog.FileNames.Length > 0)
|
|
Log.Debug($"选择了{fileDialog.FileNames.Length}个文件!");
|
|
else
|
|
Log.Debug($"取消选择!");
|
|
}
|
|
|
|
private async void button_Push_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
|
|
if (NetHelper.IsServer)
|
|
{
|
|
// NetHelper.Server
|
|
}
|
|
else
|
|
{
|
|
Log.Debug($"开始推送文件!");
|
|
foreach (var info in pushFileInfos)
|
|
{
|
|
var result = await NetHelper.Client.SendFileAsync(info.filePath, UpdateProgress);
|
|
if (!result)
|
|
{
|
|
Log.Debug($@"{info.fileName}上传失败! ");
|
|
MessageBox.Show($@"{info.fileName}上传失败! ");
|
|
continue;
|
|
}
|
|
else if (result)
|
|
{
|
|
Log.Debug($@"{info.fileName}上传成功! ");
|
|
MessageBox.Show($@"{info.fileName}上传成功! ");
|
|
listView_Files.Items[info.index].ForeColor = Color.Green;
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
catch (Exception exception)
|
|
{
|
|
MessageBox.Show(exception.Message);
|
|
}
|
|
}
|
|
|
|
private void UpdateProgress(string msg)
|
|
{
|
|
//long speed = NetHelper.Client.GetSendSpeed();
|
|
//float progress = NetHelper.Client.GetSendProgress();
|
|
//label_PushProgress.Text = $@"进度:{progress},速度:{speed}Mb/s";
|
|
Invoke(() =>
|
|
{
|
|
label_PushProgress.Text = msg;
|
|
Log.Debug($@"{msg}");
|
|
});
|
|
}
|
|
|
|
private void listView_Files_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
}
|
|
|
|
private void button_OpenLogFile_Click(object sender, EventArgs e)
|
|
{
|
|
MessageBox.Show(@"待添加内容!");
|
|
Log.Debug(@"待添加内容!");
|
|
}
|
|
|
|
private void listView_Log_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
}
|
|
|
|
private void progressBar_PushProgress_Click(object sender, EventArgs e)
|
|
{
|
|
MessageBox.Show(@"待添加内容!");
|
|
}
|
|
|
|
private void button_Setting_Click(object sender, EventArgs e)
|
|
{
|
|
Setting setting = new Setting();
|
|
setting.Show();
|
|
}
|
|
|
|
private void button_ClearFiles_Click(object sender, EventArgs e)
|
|
{
|
|
listView_Files.Clear();
|
|
}
|
|
}
|
|
|
|
public class PushFileInfo
|
|
{
|
|
public string fileName;
|
|
public string filePath;
|
|
public int index;
|
|
}
|
|
} |