是否可以在.NET中访问外部程序的属性?

时间:2013-11-28 09:42:53

标签: c# .net

我不确定这是否可行。但是,如果我有一个.exe文件存储在某个地方,我可以访问它(例如我的桌面),其中有一个版本号变量存储在文件属性的详细信息选项卡中(不是在这里讨论gettable / settable属性的编程结构) )。我可以在.NET中访问此属性吗?

我见过的所有例子似乎都引用了本地程序属性。

如果上述情况不可能,有没有办法让某些程序的信息可供其他程序访问和阅读?

编辑:我不仅仅想要版本信息,我还需要稍后在详情选项卡中访问修改日期和文件大小以及其他可能的属性

3 个答案:

答案 0 :(得分:6)

您可以使用FileVersionInfo类来获取其他程序的版本。

FileVersionInfo myFileVersionInfo = FileVersionInfo.GetVersionInfo(Environment.SystemDirectory + "\\Notepad.exe");

Console.WriteLine("File: " + myFileVersionInfo.FileDescription + '\n' +
                  "Version number: " + myFileVersionInfo.FileVersion);

答案 1 :(得分:2)

如果我没错,您正在尝试使用c#获取文件的版本号。您可以尝试以下示例:

using System;
using System.IO;
using System.Diagnostics;

class Class1
{
     public static void Main(string[] args)
     {
    // Get the file version for the notepad. 
    // Use either of the two following commands.
    FileVersionInfo.GetVersionInfo(Path.Combine(Environment.SystemDirectory, "Notepad.exe"));
    FileVersionInfo myFileVersionInfo = FileVersionInfo.GetVersionInfo(Environment.SystemDirectory + "\\Notepad.exe");


    // Print the file name and version number.
    Console.WriteLine("File: " + myFileVersionInfo.FileDescription + '\n' +
       "Version number: " + myFileVersionInfo.FileVersion);
    }

}

来源:http://msdn.microsoft.com/en-us/library/system.diagnostics.fileversioninfo(v=vs.110).aspx

答案 2 :(得分:1)

您可以尝试浏览File,FileInfo和FileVersionInfo类以获取所需的详细信息。