You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于现有代码从服务器一次性下载所有PNG格式图片?

实现批量下载目标地址下所有PNG图片的修改方案

首先明确:你提供的原链接是单个图片的直接地址,无法直接通过该链接获取服务器上的所有PNG文件。需要先确认目标服务器是否开启了目录浏览功能(即访问http://31.44.65.47:5240/能看到该目录下的所有文件列表)。如果服务器允许目录浏览,可按以下代码实现批量下载:

完整实现代码

using System;
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Text.RegularExpressions;
using System.Windows.Forms;

public void DownloadAllPngImages()
{
    // 目标目录地址(注意是目录,不是单个图片)
    string baseUrl = "http://31.44.65.47:5240/";
    string saveDirectory = @"C:\DownloadedPNGs"; // 本地保存目录,可自行修改

    // 创建本地保存目录
    if (!Directory.Exists(saveDirectory))
    {
        Directory.CreateDirectory(saveDirectory);
    }

    try
    {
        // 获取目录页面内容
        string pageContent;
        using (WebClient client = new WebClient())
        {
            pageContent = client.DownloadString(baseUrl);
        }

        // 用正则匹配页面中所有PNG图片链接
        Regex pngRegex = new Regex(@"href=""([^""]+\.png)""", RegexOptions.IgnoreCase);
        MatchCollection matches = pngRegex.Matches(pageContent);

        foreach (Match match in matches)
        {
            string pngRelativeUrl = match.Groups[1].Value;
            string fullPngUrl = new Uri(new Uri(baseUrl), pngRelativeUrl).ToString();
            string fileName = Path.GetFileName(fullPngUrl);
            string savePath = Path.Combine(saveDirectory, fileName);

            // 下载并保存图片
            using (WebClient client = new WebClient())
            {
                client.DownloadFile(fullPngUrl, savePath);
                // 如果需要加载到pictureBox(可选,这里会显示最后一张下载的图片)
                pictureBox1.Image = Bitmap.FromFile(savePath);
            }

            Console.WriteLine($"已下载:{fileName}");
        }

        MessageBox.Show("所有PNG图片下载完成!");
    }
    catch (Exception ex)
    {
        MessageBox.Show($"下载出错:{ex.Message}");
    }
}

关键说明

  • 前提条件:目标服务器必须开启目录浏览功能,否则无法获取PNG文件列表。如果服务器没有开启目录浏览,你需要知道所有PNG的具体文件名,或有其他接口获取文件列表。
  • 正则匹配:代码用正则表达式提取页面里的PNG链接,适配大多数默认的目录浏览页面格式。如果页面结构特殊,可能需要调整正则表达式。
  • 本地保存:代码会自动创建指定的本地目录,将下载的PNG保存到该目录下。
  • WebClient替代WebRequest:用WebClient比WebRequest更简洁,适合批量下载场景。

内容的提问来源于stack exchange,提问作者dsdsa sadsa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 18:45:41