题
我很困惑与下面的代码块,因为它为什么下载的网页,而该文件本身的内容。我创建了一些文本虚拟文件在里面,然后我下载它,但是当我打开下载的文件,我不知道我写的任何文字,但它有奇怪的网络语言的标签。
private bool DownloadCSVfile()
{
bool downloadOk = false;
WebClient client = null;
try
{
client = new WebClient();
client.Credentials = CredentialCache.DefaultCredentials;
client.DownloadFile(myURL, CSVfile);
if (File.Exists(CSVfile))
downloadOk = true;
else
downloadOk = false;
}
catch (Exception error)
{
downloadOk = false;
string err = error.Message;
}
//release resource
if (client != null)
{
client.Dispose();
client = null;
}
//
if (downloadOk == true)
{
return true;
}
else
{
return false;
}
}
解决方案
在“/”
我猜myURL
结束,并没有名为“.csv”我说得对不对?你以为myURL + CSVFile
将包含完整的文件路径?它不会。 (见文件)网址必须是文件路径本身。你被允许有这样的事情:
client.DownloadFile(@"./file.csv", "filename.txt");
如果我不是在正确的轨道上,请告诉什么是在URL中,哪些部分第几个标签是在下载的文件。
其他提示
网站是否需要登录,这真的重定向吗?
我有一个在此之前,我需要我的伪装浏览运动(和存储Cookie和等)之前,它会允许我下载我需要的文件。
对不起,什么是“网页”意味着“网页的内容”。这里只有一个URL这里涉及,这是myURL。是否myURL点到CSV文件直接?如果是这样,那还有什么你实际上收到的内容是什么样子?
此外:
if (File.Exists(CSVfile))
downloadOk = true;
else
downloadOk = false;
...是尴尬。请写:
downloadOk = File.Exists(CSVfile);
这具有相同的结果,在1线代替4-
//
if (downloadOk == true)
{
return true;
}
else
{
return false;
}
这是更差。单行:
return downloadOk;
...不正是在1行代码而不是7同样的事情。
另外,在异常块两条线...
catch (Exception error)
{
downloadOk = false;
string err = error.Message;
}
...什么都不做。 downloadOk总是会在你的异常块假的,它超出范围之前,局部变量“ERR”从未使用过。
不隶属于 StackOverflow