文件没有下载,即使它说下载了
File not downloading even though it says it did
我遇到一个文件无法下载的问题,即使它显示为已完成。
该文件没有显示在它应该下载到的位置。
这是我的代码:
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if(e.ColumnIndex == 2)
{
int rowIndex = e.RowIndex;
DataGridViewRow row = dataGridView1.Rows[rowIndex];
string value1 = row.Cells[2].Value.ToString();
wc.DownloadFileCompleted += new AsyncCompletedEventHandler(AtlasCompleted);
Uri fileUrl = new Uri(value1);
Beta = fileUrl;
//Console.WriteLine(FormPopup.Variables.Location1.Length);
if (FormPopup.Variables.Location1 != null && FormPopup.Variables.Location1.Length >= 5)
{
Console.WriteLine(FormPopup.Variables.Location1);
Console.WriteLine(fileUrl);
wc.DownloadFileAsync(fileUrl, FormPopup.Variables.Location1);
//MessageBox.Show(fileUrl.ToString() + " " + FormPopup.Variables.Location1);
}
else
{
MessageBox.Show("Error: No file location specified.");
FormPopup form = new FormPopup();
form.Show(this);
}
}
}
private void AtlasCompleted(object sender, AsyncCompletedEventArgs e)
{
MessageBox.Show(Beta.ToString() + " " + FormPopup.Variables.Location1);
}
文件应该下载,但它没有下载或出现在指定的位置。
如果有人能提供帮助那就太好了,这让我很困惑。
感谢回复:D
WebClient 代码没有问题,它应该可以毫无问题地下载文件。只需确保您的文件 Uri 正确(将 uri 粘贴到浏览器中并查看其正确性)。在本地系统上保存文件的路径应该有效(路径中包含的文件夹必须存在)并且普通用户必须具有写入权限。
要进一步测试,请先使用硬编码值:
wc.DownloadFileAsync("File Uril","File path at local system");
示例:
wc.DownloadFileAsync(new Uri("http://example.com/myfile.txt"), @"d:\myfile.txt");
仔细检查您的 Uri 和位置变量,因为除了无效参数外,没有任何魔法可以阻止下载。
此外,添加一些错误 logging/Exception 处理,以便它告诉您发生了什么。
private void AtlasCompleted(object sender, AsyncCompletedEventArgs e)
{
if(e.Error !=null)
Console.WriteLine(e.Error.Message);
else
Console.WriteLine("Completed");
MessageBox.Show(Beta.ToString() + " " + FormPopup.Variables.Location1);
}
我遇到一个文件无法下载的问题,即使它显示为已完成。
该文件没有显示在它应该下载到的位置。
这是我的代码:
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if(e.ColumnIndex == 2)
{
int rowIndex = e.RowIndex;
DataGridViewRow row = dataGridView1.Rows[rowIndex];
string value1 = row.Cells[2].Value.ToString();
wc.DownloadFileCompleted += new AsyncCompletedEventHandler(AtlasCompleted);
Uri fileUrl = new Uri(value1);
Beta = fileUrl;
//Console.WriteLine(FormPopup.Variables.Location1.Length);
if (FormPopup.Variables.Location1 != null && FormPopup.Variables.Location1.Length >= 5)
{
Console.WriteLine(FormPopup.Variables.Location1);
Console.WriteLine(fileUrl);
wc.DownloadFileAsync(fileUrl, FormPopup.Variables.Location1);
//MessageBox.Show(fileUrl.ToString() + " " + FormPopup.Variables.Location1);
}
else
{
MessageBox.Show("Error: No file location specified.");
FormPopup form = new FormPopup();
form.Show(this);
}
}
}
private void AtlasCompleted(object sender, AsyncCompletedEventArgs e)
{
MessageBox.Show(Beta.ToString() + " " + FormPopup.Variables.Location1);
}
文件应该下载,但它没有下载或出现在指定的位置。
如果有人能提供帮助那就太好了,这让我很困惑。
感谢回复:D
WebClient 代码没有问题,它应该可以毫无问题地下载文件。只需确保您的文件 Uri 正确(将 uri 粘贴到浏览器中并查看其正确性)。在本地系统上保存文件的路径应该有效(路径中包含的文件夹必须存在)并且普通用户必须具有写入权限。
要进一步测试,请先使用硬编码值:
wc.DownloadFileAsync("File Uril","File path at local system");
示例:
wc.DownloadFileAsync(new Uri("http://example.com/myfile.txt"), @"d:\myfile.txt");
仔细检查您的 Uri 和位置变量,因为除了无效参数外,没有任何魔法可以阻止下载。
此外,添加一些错误 logging/Exception 处理,以便它告诉您发生了什么。
private void AtlasCompleted(object sender, AsyncCompletedEventArgs e)
{
if(e.Error !=null)
Console.WriteLine(e.Error.Message);
else
Console.WriteLine("Completed");
MessageBox.Show(Beta.ToString() + " " + FormPopup.Variables.Location1);
}