1

我在 localhost/xxx/xxx.aspx 上运行的 IIS 上部署了一个网站。在我的 WPF 方面,我使用 webclient 从 localhost 服务器下载一个文本文件并将其保存在我的 wpf 应用程序文件夹中,这就是我的做法:

  protected void DownloadData(string strFileUrlToDownload)
    {
        WebClient client = new WebClient();
        byte[] myDataBuffer = client.DownloadData(strFileUrlToDownload);         

        MemoryStream storeStream = new MemoryStream();

        storeStream.SetLength(myDataBuffer.Length);
        storeStream.Write(myDataBuffer, 0 , (int)storeStream.Length);

        storeStream.Flush();

        string currentpath = System.IO.Directory.GetCurrentDirectory() + @"\Folder";

        using (FileStream file = new FileStream(currentpath, FileMode.Create, System.IO.FileAccess.ReadWrite))
        {
            byte[] bytes = new byte[storeStream.Length];
            storeStream.Read(bytes, 0, (int)storeStream.Length);
            file.Write(myDataBuffer, 0, (int)storeStream.Length);
            storeStream.Close();
        }

        //The below Getstring method to get data in raw format and manipulate it as per requirement
        string download = Encoding.ASCII.GetString(myDataBuffer);


    }

这是通过写入 btyes 并保存它们。但是如何下载多个图像文件并将其保存在我的 WPF 应用程序文件夹中?我有一个类似 localhost/websitename/folder/designs/ 的 URL,在这个 URL 下,有很多图片,我如何下载所有图片?并将其保存在 WPF 应用程序文件夹中?

基本上我想下载文件夹的内容,其中的内容实际上是图像。

4

1 回答 1

1

首先,WebClient该类已经有一个方法。使用类似的东西client.DownloadFile(remoteUrl, localFilePath)

请参阅此链接:

WebClient.DownloadFile 方法(字符串,字符串)

其次,您需要以某种方式索引要在服务器上下载的文件。您不能只通过 HTTP 获取目录列表,然后循环遍历它。需要将 Web 服务器配置为启用目录列表,或者您将需要一个页面来生成目录列表。然后,您需要将该页面的结果作为字符串下载WebClient.DownloadString并解析它。一个简单的解决方案是一个 aspx 页面,它输出您要下载的目录中的文件的纯文本列表。

最后,在您发布的代码中,您将下载的每个文件保存为名为“文件夹”的文件。您需要为要下载的每个文件生成一个唯一的文件名。当您循环浏览要下载的文件时,请使用以下内容:

string localFilePath = Path.Combine("MyDownloadFolder", imageName);

其中imageName是该文件的唯一文件名(带有文件扩展名)。

于 2013-09-06T04:04:36.560 回答