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

如何在C#中处理Selenium API返回的Base64压缩文件并导出为TXT

直接将Selenium API返回的Base64压缩字符串解压缩为本地TXT文件(C#实现)

需求说明

从Selenium Grid API获取文件的Base64压缩字符串后,无需生成中间ZIP文件,直接在代码内解压缩并导出为本地TXT文件。

完整实现代码

using System;
using System.IO;
using System.IO.Compression;

// 触发下载并获取Base64压缩字符串
DownloadBtn.Click();

dynamic json = APIUtils.ExecuteAPIGet(SeleniumGridHubUri + "/session/MySessionID/se/files");
string fileToDownload = json.value.names[0];

object bodyOfAPI = new { name = fileToDownload };
dynamic json2 = APIUtils.ExecuteAPIPost(SeleniumGridHubUri, bodyOfAPI);
string base64String = json2.value.contents;

// 直接解压缩并保存为TXT文件
byte[] zipBytes = Convert.FromBase64String(base64String);
string outputTxtPath = @"c:\seleniumdownloads\extracted_file.txt";

using (MemoryStream zipStream = new MemoryStream(zipBytes))
using (ZipArchive archive = new ZipArchive(zipStream, ZipArchiveMode.Read))
{
    // 获取压缩包内的第一个文件(若有多个文件,可根据文件名筛选)
    ZipArchiveEntry entry = archive.Entries[0];
    
    // 读取压缩文件内容并写入本地TXT
    using (StreamReader reader = new StreamReader(entry.Open()))
    using (StreamWriter writer = new StreamWriter(outputTxtPath))
    {
        writer.Write(reader.ReadToEnd());
    }
}

关键步骤说明

  • Base64转字节数组:通过Convert.FromBase64String将API返回的Base64字符串转换为字节数组。
  • 内存中处理压缩包:用MemoryStream包装字节数组,全程在内存中操作,避免生成本地ZIP临时文件。
  • 读取压缩包内容:使用ZipArchive解析内存中的压缩数据,获取目标文件条目。
  • 导出TXT文件:通过StreamReader读取压缩文件的文本内容,再用StreamWriter写入本地TXT文件。

注意事项

  • .NET Core/.NET 5+默认包含System.IO.Compression相关程序集;若使用.NET Framework,需手动添加System.IO.Compression和System.IO.Compression.FileSystem引用。
  • 如果压缩包内存在多个文件,需要遍历archive.Entries集合,通过entry.Name筛选出目标TXT文件。

内容的提问来源于stack exchange,提问作者Mike Johnston

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 21:44:56