下载文件(如果服务器上存在)

用户名

我有以下代码:

WebClient webClient = new WebClient();
webClient.DownloadFileAsync(new Uri("http://MySite.com/Desktop/Pics.png"), 
    @"c:\users\Windows\desktop\DesktopsPics\Desktop.png");

我的程序.png每天都会在文件夹中以“每日图片”的形式下载图片!因此,当用户单击按钮时,如果服务器中已经存在“每日图片”,则程序将下载此文件。

我可以使用上面的代码执行此操作,但是,如果Pic.Png服务器中尚不存在该代码,则我的程序将引发错误。它下载一个.html为的文件404 not found

如果服务器上存在该文件,该如何下载?

黑蛙

由于您正在下载文件Async,因此需要为下载完成时添加事件处理程序。然后,您可以检查arg是否存在错误。

尝试这个:

static void Main(string[] args)
{
    WebClient client = new WebClient();
    client.DownloadFileCompleted += new AsyncCompletedEventHandler(DownloadCompleted);

    string fileName = Path.GetTempFileName();
    client.DownloadFileAsync(new Uri("https://www.google.com/images/srpr/logo11w.png"), fileName, fileName);

    Thread.Sleep(20000);
    Console.WriteLine("Done");
}

private static void DownloadCompleted(object sender, AsyncCompletedEventArgs e)
{
    if (e.Error != null)
    {
            // inspect error message for 404
        Console.WriteLine(e.Error.Message);
        if (e.Error.InnerException != null)
            Console.WriteLine(e.Error.InnerException.Message);
    }
    else
    {
        // We have a file - do something with it
        WebClient client = (WebClient)sender;

        // display the response header so we can learn
        foreach(string k in client.ResponseHeaders.AllKeys)
        {
            Console.Write(k);
            Console.WriteLine(": {0}", client.ResponseHeaders[k]);
        }

        // since we know it's a png, let rename it
        FileInfo temp = new FileInfo((string)e.UserState);
        string pngFileName = Path.Combine(Path.GetTempPath(), "DesktopPhoto.png");
        if (File.Exists(pngFileName))
            File.Delete(pngFileName);

        File.Move((string)e.UserState, pngFileName);  // move to where ever you want
        Process.Start(pngFileName);
    }

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在 Firefox 和 IE 上从服务器下载文件

来自分类Dev

下载文件(在节点上带有 chrome)并将其保存在服务器文件系统上

来自分类Dev

从服务器以html下载文件

来自分类Dev

从服务器下载文件后检查文件是否存在

来自分类Dev

从服务器下载文件(不下载?)

来自分类Dev

从服务器下载文件(不下载?)

来自分类Dev

从FTP服务器下载文件时损坏文件

来自分类Dev

通过脚本从文件服务器下载文件

来自分类Dev

从服务器文件夹下载文件

来自分类Dev

从外部网址下载文件,然后将文件直接传递给用户,而无需将其保存在我的服务器上。

来自分类Dev

从Internet上的服务器下载文件的最快协议是什么

来自分类Dev

Android-从服务器下载文件终止

来自分类Dev

在Android中使用IntentService从服务器下载文件

来自分类Dev

MVC从远程服务器下载文件

来自分类Dev

使用ASP MVC从远程服务器下载文件

来自分类常见问题

在React中如何从服务器下载文件?

来自分类Dev

JSP-允许用户从服务器下载文件

来自分类Dev

从基于Flask的Python服务器下载文件

来自分类Dev

使用Java从服务器下载文件

来自分类Dev

使用angularjs从服务器下载文件

来自分类Dev

如何从服务器下载文件(sso和https)

来自分类Dev

使用Swift从服务器下载文件

来自分类Dev

从服务器Objective C或Swift下载文件

来自分类Dev

Ruby Net :: FTP-从服务器下载文件

来自分类Dev

通过网站从PHP服务器下载文件

来自分类Dev

从服务器Struts 2.0下载文件

来自分类Dev

php从其他服务器下载文件

来自分类Dev

如何从服务器或本地Xampp下载文件?的PHP

来自分类Dev

从服务器Laravel和reactjs下载文件

Related 相关文章

热门标签

归档