栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何获取Windows文件详细信息?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何获取Windows文件详细信息?

使用Windows API,您可以调用VerQueryValue以获取该信息。JNA有一个用于访问此API的类,称为Version。

这另一个问题有一些代码示例可以帮助您入门:

获取.exe的版本信息

这是一个读取产品名称的C代码示例,您可以将其转换为JNA:

如何从Visual C ++中的版本资源中读取

显然,这仅适用于Windows。如果您希望某些东西具有可移植性,则可以使用pecoff4j自行解析可执行文件。它声称能够解析PE(便携式可执行文件)的资源部分中的版本信息。


似乎pecoff4j不支持解析版本字符串,因此我在GitHub上对其进行了分叉以添加对它的支持。该代码现在应该可以工作:

import java.io.IOException;import org.boris.pecoff4j.PE;import org.boris.pecoff4j.ResourceDirectory;import org.boris.pecoff4j.ResourceEntry;import org.boris.pecoff4j.constant.ResourceType;import org.boris.pecoff4j.io.PEParser;import org.boris.pecoff4j.io.ResourceParser;import org.boris.pecoff4j.resources.StringFileInfo;import org.boris.pecoff4j.resources.StringTable;import org.boris.pecoff4j.resources.VersionInfo;import org.boris.pecoff4j.util.ResourceHelper;public class Main {    public static void main(String[] args) throws IOException {        PE pe = PEParser.parse("C:/windows/system32/notepad.exe");        ResourceDirectory rd = pe.getImageData().getResourceTable();        ResourceEntry[] entries = ResourceHelper.findResources(rd, ResourceType.VERSION_INFO);        for (int i = 0; i < entries.length; i++) { byte[] data = entries[i].getData(); VersionInfo version = ResourceParser.readVersionInfo(data); StringFileInfo strings = version.getStringFileInfo(); StringTable table = strings.getTable(0); for (int j = 0; j < table.getCount(); j++) {     String key = table.getString(j).getKey();     String value = table.getString(j).getValue();     System.out.println(key + " = " + value); }        }    }}

它将打印您需要的所有信息:

CompanyName = Microsoft CorporationFileDescription = NotepadFileVersion = 6.1.7600.16385 (win7_rtm.090713-1255)InternalName = NotepadLegalCopyright = © Microsoft Corporation. All rights reserved.OriginalFilename = NOTEPAD.EXEProductName = Microsoft® Windows® Operating SystemProductVersion = 6.1.7600.16385


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/470033.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号