基本信息
源码名称:文件URL下载
源码大小:2.21M
文件格式:.rar
开发语言:C#
更新时间:2024-10-22
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
通过URl下载文件到本地
private void DownloadTable()
{
// 添加一个新的DataGridViewTextBoxColumn作为Label列
var labelColumn = new DataGridViewTextBoxColumn();
labelColumn.Name = "DownloadColumn";
labelColumn.HeaderText = "";
labelColumn.Width = 30;
labelColumn.ReadOnly = true; // 禁止编辑
DataGridViewTable.Columns.Add(labelColumn);
}
/// <summary>
/// 下载loading
/// </summary>
/// <param name="url"></param>
/// <param name="path"></param>
/// <param name="prog"></param>
/// <param name="labelBar"></param>
public void DownloadFile(string url, string path, System.Windows.Forms.ProgressBar prog, System.Windows.Forms.Label labelBar)
{
try
{
// 创建遮罩窗体
mask = new Form();
mask.BackColor = Color.Black;
mask.Opacity = 0.5; // 设置透明度
mask.FormBorderStyle = FormBorderStyle.None;
mask.ShowInTaskbar = false;
mask.StartPosition = FormStartPosition.Manual;
mask.Dock = DockStyle.Fill; // 填充整个窗体
mask.Location = this.Location;
mask.Size = this.Size; // 设置遮罩窗体的大小与主窗体的大小相同
mask.BringToFront(); // 确保遮罩层在最前
mask.Visible = true; // 使遮罩层可见
this.AddOwnedForm(mask);
float percent = 0;
string fileName = url.Substring(url.LastIndexOf("/") 1); //被下载的文件名
bool contains = url.Contains("=");
if(contains)
{
fileName = url.Substring(url.LastIndexOf('=') 1); // 获取最后一个斜杠之后的部分作为文件名
}
string filePath = path "/" fileName; //另存为的绝对路径 文件名
WebRequest myre = WebRequest.Create(url);
WebClient client = new WebClient();
client.DownloadFile(url, filePath);
HttpWebResponse myrp = (HttpWebResponse)myre.GetResponse();
long totalBytes = myrp.ContentLength;
if (prog != null)
{
prog.Maximum = (int)totalBytes;
}
System.IO.Stream st = myrp.GetResponseStream();
long totalDownloadedByte = 0;
byte[] by = new byte[1024];
int osize = st.Read(by, 0, (int)by.Length);
while (osize > 0)
{
totalDownloadedByte = osize totalDownloadedByte;
System.Windows.Forms.Application.DoEvents();
/* Thread.Sleep(1000);*/
if (prog != null)
{
prog.Value = (int)totalDownloadedByte;
}
osize = st.Read(by, 0, (int)by.Length);
progressBar.Visible = true;
progressBar.BringToFront();
percent = (float)Math.Floor(totalDownloadedByte / (float)totalBytes * 100);
bar.Visible = false;
bar.BackColor = Color.Transparent;
bar.Text = percent.ToString() "%";
System.Windows.Forms.Application.DoEvents(); //必须加注这句代码,否则label1将因为循环执行太快而来不及显示信息
}
Process.Start("explorer.exe", $"/select,\"{Path.Combine(path, fileName)}\"");
st.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Error");
}
}
/// <summary>
/// 分页
/// </summary>
/// <param name="str"></param>
private void PageSorter()
{
paging.recordCount = softwareModelList.Count; //记录总行数
paging.pageCount = (paging.recordCount / paging.pageSize);
if ((paging.recordCount % paging.pageSize) > 0)
{
paging.pageCount ;
}
//默认第一页
paging.currentPage = 1;
LoadPage();//调用加载数据的方法
}
通过URl下载文件到本地
private void DownloadTable()
{
// 添加一个新的DataGridViewTextBoxColumn作为Label列
var labelColumn = new DataGridViewTextBoxColumn();
labelColumn.Name = "DownloadColumn";
labelColumn.HeaderText = "";
labelColumn.Width = 30;
labelColumn.ReadOnly = true; // 禁止编辑
DataGridViewTable.Columns.Add(labelColumn);
}
/// <summary>
/// 下载loading
/// </summary>
/// <param name="url"></param>
/// <param name="path"></param>
/// <param name="prog"></param>
/// <param name="labelBar"></param>
public void DownloadFile(string url, string path, System.Windows.Forms.ProgressBar prog, System.Windows.Forms.Label labelBar)
{
try
{
// 创建遮罩窗体
mask = new Form();
mask.BackColor = Color.Black;
mask.Opacity = 0.5; // 设置透明度
mask.FormBorderStyle = FormBorderStyle.None;
mask.ShowInTaskbar = false;
mask.StartPosition = FormStartPosition.Manual;
mask.Dock = DockStyle.Fill; // 填充整个窗体
mask.Location = this.Location;
mask.Size = this.Size; // 设置遮罩窗体的大小与主窗体的大小相同
mask.BringToFront(); // 确保遮罩层在最前
mask.Visible = true; // 使遮罩层可见
this.AddOwnedForm(mask);
float percent = 0;
string fileName = url.Substring(url.LastIndexOf("/") 1); //被下载的文件名
bool contains = url.Contains("=");
if(contains)
{
fileName = url.Substring(url.LastIndexOf('=') 1); // 获取最后一个斜杠之后的部分作为文件名
}
string filePath = path "/" fileName; //另存为的绝对路径 文件名
WebRequest myre = WebRequest.Create(url);
WebClient client = new WebClient();
client.DownloadFile(url, filePath);
HttpWebResponse myrp = (HttpWebResponse)myre.GetResponse();
long totalBytes = myrp.ContentLength;
if (prog != null)
{
prog.Maximum = (int)totalBytes;
}
System.IO.Stream st = myrp.GetResponseStream();
long totalDownloadedByte = 0;
byte[] by = new byte[1024];
int osize = st.Read(by, 0, (int)by.Length);
while (osize > 0)
{
totalDownloadedByte = osize totalDownloadedByte;
System.Windows.Forms.Application.DoEvents();
/* Thread.Sleep(1000);*/
if (prog != null)
{
prog.Value = (int)totalDownloadedByte;
}
osize = st.Read(by, 0, (int)by.Length);
progressBar.Visible = true;
progressBar.BringToFront();
percent = (float)Math.Floor(totalDownloadedByte / (float)totalBytes * 100);
bar.Visible = false;
bar.BackColor = Color.Transparent;
bar.Text = percent.ToString() "%";
System.Windows.Forms.Application.DoEvents(); //必须加注这句代码,否则label1将因为循环执行太快而来不及显示信息
}
Process.Start("explorer.exe", $"/select,\"{Path.Combine(path, fileName)}\"");
st.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Error");
}
}
/// <summary>
/// 分页
/// </summary>
/// <param name="str"></param>
private void PageSorter()
{
paging.recordCount = softwareModelList.Count; //记录总行数
paging.pageCount = (paging.recordCount / paging.pageSize);
if ((paging.recordCount % paging.pageSize) > 0)
{
paging.pageCount ;
}
//默认第一页
paging.currentPage = 1;
LoadPage();//调用加载数据的方法
}