使用以下C#程序代码可以非常方便地获取Windows系统中任意一个文件(尤其是可执行文件)的文件版本、文件大小、版权、产品名称等信息。所获取到的信息类似于在Windows操作系统中右键点击该文件,然后点击【属性】-【详细信息】所看到的文件信息(Windows操作系统该界面上的文字信息不可复制)。

详细C#程序代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; class Program
{
static void Main(string[] args)
{
while (true)
{
Console.Write("请输入指定的文件路径(请拖拽文件到此处):");
string path = Console.ReadLine();
PrintFileVersionInfo(path);
} } /// <summary>
/// 打印指定文件的详细信息
/// </summary>
/// <param name="path">指定文件的路径</param>
static void PrintFileVersionInfo(string path)
{
System.IO.FileInfo fileInfo = null;
try
{
fileInfo = new System.IO.FileInfo(path);
}
catch (Exception e)
{
Console.WriteLine(e.Message);
// 其他处理异常的代码
}
// 如果文件存在
if (fileInfo != null && fileInfo.Exists)
{
System.Diagnostics.FileVersionInfo info = System.Diagnostics.FileVersionInfo.GetVersionInfo(path);
Console.WriteLine("文件名称=" + info.FileName);
Console.WriteLine("产品名称=" + info.ProductName);
Console.WriteLine("公司名称=" + info.CompanyName);
Console.WriteLine("文件版本=" + info.FileVersion);
Console.WriteLine("产品版本=" + info.ProductVersion);
// 通常版本号显示为「主版本号.次版本号.生成号.专用部件号」
Console.WriteLine("系统显示文件版本:" + info.ProductMajorPart + '.' + info.ProductMinorPart + '.' + info.ProductBuildPart + '.' + info.ProductPrivatePart);
Console.WriteLine("文件说明=" + info.FileDescription);
Console.WriteLine("文件语言=" + info.Language);
Console.WriteLine("原始文件名称=" + info.OriginalFilename);
Console.WriteLine("文件版权=" + info.LegalCopyright); Console.WriteLine("文件大小=" + System.Math.Ceiling(fileInfo.Length / 1024.0) + " KB");
}
else
{
Console.WriteLine("指定的文件路径不正确!");
}
// 末尾空一行
Console.WriteLine();
}
}

编译并运行以上代码程序,然后用鼠标把指定文件拖拽到该程序的DOS运行窗口中,即可获取该文件的路径,然后按回车键即可获得对应的文件详细信息。以上面的可执行文件为例,输出结果如下:

使用上述C#程序代码获得的文件详细信息

注意:如上图所示,Windows操作系统中显示的文件版本"2.0.0.835"并不是直接显示FileVersionInfo.FileVersion的属性值,而是显示的"主版本号.次版本号.生成号.专用部件号",即上面代码中的info.ProductMajorPart + '.' + info.ProductMinorPart + '.' + info.ProductBuildPart + '.' + info.ProductPrivatePart

C#获取文件版本、文件大小等信息的更多相关文章

  1. Powershell 获取文件版本信息

    获取文件版本信息,通过FileVersionInfo::GetVersioninfo(file) 来获取信息 function Check-DdpstoreFileVersion{ $Ddpstore ...

  2. C#开发BIMFACE系列8 服务端API之获取文件上传状态信息

    系列目录     [已更新最新开发文章,点击查看详细] 在BIMFACE控制台上传文件,上传过程及结束后它会自动告诉你文件的上传状态,目前有三种状态:uploading,success,failure ...

  3. stat(),lstat(),fstat() 获取文件/目录的相关信息

    stat 的使用 Linux有个命令,ls -l,效果如下: 这个命令能显示文件的类型.操作权限.硬链接数量.属主.所属组.大小.修改时间.文件名.它是怎么获得这些信息的呢,请看下面的讲解. stat ...

  4. linux 获取文件系统信息(磁盘信息)

    源代码例如以下: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <s ...

  5. C#获取文件版本信息

    使用FileVersionInfo获取版本信息 FileVersionInfo info = FileVersionInfo.GetVersionInfo(Application.Current.St ...

  6. WIN32 API 获取文件版本信息

    CString strVersion; CString strPath(_T("xxxxxxxx.exe")); // 读文件信息 DWORD dwVerHnd = 0; DWOR ...

  7. win32api 获取文件版本信息

    #coding:utf-8 myPath="C:\\ime" import os from win32api import GetFileVersionInfo, LOWORD, ...

  8. SharePoint online 获取文件版本记录

    endpoint: _api/web/GetFileByServerRelativeUrl('/allDoc/xxx.pdf')/Versions 问题: 第一次使用,无论在本地还是o365上,都只返 ...

  9. C# 获取文件版本

    var versionInfo = FileVersionInfo.GetVersionInfo(filePath); String productVersion = versionInfo.Prod ...

随机推荐

  1. Dice 5 ==> dice 7

    https://github.com/Premiumlab/Python-for-Algorithms--Data-Structures--and-Interviews/blob/master/Moc ...

  2. hdu-2191(完全背包+二进制优化模板)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2191 思路:完全背包模板 #include<iostream> #include<c ...

  3. python小练习--属性

    箭头这个作业: class Box:#定义一个类名为Box,类名后不必有括号,类包含类属性和类方法,这个类没有定义类属性 '''这是一个计算体积的类'''#这是这个类的__doc__属性,执行类后就可 ...

  4. POP介绍与使用实践(快速上手动画)[转]

    前言 动画在APP开发过程中 大家多多少少都会接触到 而且随着ios7的扁平化风格启用之后 越来越多的APP开始尝试加入各种绚丽的动画交互效果以增加APP的用户体验(当然 还是以国外的APP居多) 有 ...

  5. MVC, EF, Code First 相关问题总结

    1. 控制表名单复数: 在DbContext类中修改OnModelCreating()为: protected override void OnModelCreating(DbModelBuilder ...

  6. day11(多线程,唤醒机制,生产消费者模式,多线程的生命周期)

    A:进程: 进程指正在运行的程序.确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能. B:线程: 线程是进程中的一个执行单元,负责当前进程中程序的执 ...

  7. 如何手动编译java文件

    1,在编辑框中,将目录切至java文件所在的地址 如图 2,开始编译java文件 用命令javac 编译目标java文件,文件需带后缀名 ; 用java 执行class, 此时class文件无需带后缀 ...

  8. afx_msg解释

    以前一直不知道AFX_MSG是什么意思,只是觉得它应该是个消息映射函数,但是具体代表什么意思,会返回一个什么样的值是一点都不清楚,今天查了下资料,把查到的东西放这,以免以后忘了还得再查. 在头文件(D ...

  9. HDU2976 Dropping tests 2017-05-11 18:10 39人阅读 评论(0) 收藏

    Dropping tests Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 12187   Accepted: 4257 D ...

  10. js 面向对象 继承机制

    根据w3cschool上的描述:共有3种继承方法(对象冒充,原型链,混合) 1.对象冒充:构造函数ClassA使用this关键字给所有属性和方法赋值,使ClassA构造函数成为ClassB的方法,调用 ...