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

如何从URL获取文件版本资源中的原始文件名?

解决远程DLL文件原始文件名获取问题

FileVersionInfo.GetVersionInfo() 仅支持本地文件路径,无法直接解析远程URL指向的文件,这就是你当前代码失效的核心原因。要获取远程DLL的原始文件名,需先将文件下载到本地临时目录,再读取其版本资源,具体实现如下:

实现步骤

  1. 下载远程DLL到本地临时文件
  2. 读取本地临时文件的版本信息,提取原始文件名
  3. 清理临时文件(避免本地残留)

完整代码示例

using System;
using System.IO;
using System.Net.Http;
using System.Diagnostics;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        var dllUrl = "https://cdn.example.com/c6244c971f.dll";
        string tempFilePath = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName() + ".dll");
        
        try
        {
            // 下载远程文件到本地临时路径
            using (HttpClient client = new HttpClient())
            {
                byte[] fileBytes = await client.GetByteArrayAsync(dllUrl);
                await File.WriteAllBytesAsync(tempFilePath, fileBytes);
            }
            
            // 读取本地文件的版本信息
            FileVersionInfo fileVersionInfo = FileVersionInfo.GetVersionInfo(tempFilePath);
            Console.WriteLine("原始文件名: " + fileVersionInfo.OriginalFilename);
        }
        catch (Exception ex)
        {
            Console.WriteLine("获取失败: " + ex.Message);
        }
        finally
        {
            // 清理临时文件
            if (File.Exists(tempFilePath))
            {
                File.Delete(tempFilePath);
            }
        }
    }
}

注意事项

  • 确保程序有临时目录的写入权限
  • 异常处理覆盖了网络请求失败、文件读写失败等常见场景
  • 若需频繁处理此类文件,可添加缓存逻辑减少重复下载

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 15:27:49