c#程序没有下载文件测试,看看我是否可以对我的程序进行更新
本文关键字:程序 我的 更新 是否 看我 有下载 文件 测试 | 更新日期: 2023-09-27 18:16:24
我创建了一个程序来下载一个*.zip*
文件,下载进度显示在一个progressBar
中。该程序然后提取*.zip*
文件。这是我目前得到的,update path指向这里:
string updatepath = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "updatetest";
public void downloadfile()
{
//client.DownloadFile("http://elfenliedtopfan5.co.uk/update/elfenlied_weapons.zip", updatepath);
WebClient client = new WebClient();
client.DownloadFileAsync(new Uri("http://elfenliedtopfan5.co.uk/update/elfenlied_weapons.zip"), updatepath);
client.DownloadProgressChanged += client_DownloadProgressChanged;
}
void client_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
int bytesin = int.Parse(e.BytesReceived.ToString());
int totalbytes = int.Parse(e.TotalBytesToReceive.ToString());
int kb1 = bytesin / 1024;
int kb2 = totalbytes / 1024;
label1.Text = kb1.ToString() + "KB out of " + kb2.ToString() + "KB (" +e.ProgressPercentage.ToString() + "%)";
progressBar1.Value = e.ProgressPercentage;
}
public void seeiffile()
{
// Set to folder path we must ensure exists.
string updatepathex = updatepath;
try
{
// If the directory doesn't exist, create it.
if (!Directory.Exists(updatepathex))
{
Directory.CreateDirectory(updatepathex);
}
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
}
// if all above works then follow this
public void exactzip()
{
using (ZipFile zip = ZipFile.Read(updatepath + "elfenlied_weapons.zip"))
{
foreach (ZipEntry e in zip)
{
e.Extract(updatepath);
}
}
}
private void button1_Click(object sender, EventArgs e)
{
seeiffile();
downloadfile();
}
我的问题是文件不会下载,progressBar
也不会移动。我不明白为什么它不工作
DownloadFileAsync的第二个参数需要是文件名,而不仅仅是路径。
string file = Path.Combine(updatePath, "test.zip")
client.DownloadFileAsync(new Uri("http://elfenliedtopfan5.co.uk/update/elfenlied_weapons.zip"), file);
还应该在updatepath
变量上使用Path.Combine(),否则ProgramData
和updatetest
之间不会包含目录分隔符。