0

是否有 .NET 支持的方式以编程方式对文件系统中的基本文本、excel、word 等文件进行版本控制?

更具体地说,当客户端请求运行报表时,我试图将文件版本属性添加到从服务器流式传输到客户端的 Crystal Reports 文件中。FileVersionInfo只支持读取文件版本,File.GetAttributes只获取Hidden,Readonly等内容。

编辑:请注意,我不需要在客户端上保留这些文件的旧版本。我可以删除它们并用较新版本的报告文件替换它们。我只需要一种在客户端持久保存文件版本的方法。

string path = @"C:\myReport.rpt";

FileVersionInfo myFileVersionInfo = FileVersionInfo.GetVersionInfo(path);

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

if(File.Exists(path))
{
    var fileAttributes = File.GetAttributes(path);
}
Console.ReadKey();
4

1 回答 1

2

普通文件没有这些属性。您将不得不在外部实施它们。这个问题也在这里问

根据 MSDN:

版本资源通常在 Win32 资源文件或程序集属性中指定。例如,IsDebug 属性反映文件的 VS_FIXEDFILEINFO 块中的 VS_FF_DEBUG 标志值,该块是从 Win32 资源文件中的 VERSIONINFO 资源构建的。有关在 Win32 资源文件中指定版本资源的详细信息,请参阅 Platform SDK 中的“关于资源文件”和“VERSIONINFO 资源”。有关在 .NET 模块中指定版本资源的详细信息,请参阅设置程序集属性主题。 MSDN

因此,有一些本地方法可以将每个文件的属性存储在单独的“资源”文件中,但它将包括一些本地方法调用和一个 .net warper 类。

于 2013-04-23T14:00:57.590 回答