首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >互联网上的DownloadFile?

互联网上的DownloadFile?
EN

Stack Overflow用户
提问于 2009-06-29 10:48:07
回答 3查看 561关注 0票数 0

我对下面的代码块感到困惑,因为为什么它会下载网页的内容,而不是文件本身。我创建了一个虚拟文件,里面有一些文本,然后我下载了它,但当我打开下载文件时,我看不到我写的任何文本,但它有奇怪的web语言标签。

代码语言:javascript
复制
    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;
        }
    }
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-06-29 02:50:29

我猜myURL是以"/“结尾,而不是".csv”,对吗?您认为myURL + CSVFile会包含文件的完整路径吗?它不会。(See doc) URL必须是文件本身的路径。你可以拥有这样的东西:

代码语言:javascript
复制
client.DownloadFile(@"./file.csv", "filename.txt");

如果我没有说对,请告诉我URL中有什么,以及下载的文件中前几个标签中有哪些。

票数 1
EN

Stack Overflow用户

发布于 2009-06-29 02:51:18

这个站点需要登录吗?它真的在重定向你吗?

在此之前,我就有过一个需要我伪造浏览动作(并存储cookie等)才能允许我下载所需文件的浏览器。

票数 0
EN

Stack Overflow用户

发布于 2009-06-29 02:57:05

对不起,“网页”在“网页内容”中是什么意思?这里只涉及到一个网址,就是myURL。myURL是否直接指向CSV文件?如果是这样,那么您收到的内容实际上是什么样子的?

另外:

代码语言:javascript
复制
if (File.Exists(CSVfile))
    downloadOk = true;
else
    downloadOk = false;

...is很尴尬。请写下:

代码语言:javascript
复制
downloadOk = File.Exists(CSVfile);

这有相同的结果,在1行而不是4行。

代码语言:javascript
复制
//
if (downloadOk == true)
{
    return true;
}
else
{
    return false;
}

更糟糕的是。这一行:

代码语言:javascript
复制
return downloadOk;

在一行代码中...does完全相同的事情,而不是7行代码。

另外,异常块中的两行...

代码语言:javascript
复制
catch (Exception error)
{
    downloadOk = false;
    string err = error.Message;
}

...do绝对什么都没有。在您的异常块中,downloadOk将始终为false,并且在局部变量"err“超出作用域之前永远不会使用它。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1056369

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档