我很困惑与下面的代码块,因为它为什么下载的网页,而该文件本身的内容。我创建了一些文本虚拟文件在里面,然后我下载它,但是当我打开下载的文件,我不知道我写的任何文字,但它有奇怪的网络语言的标签。

    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”从未使用过。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top