C#简单文件版本控制
是否有一种.NET支持的方法可以通过编程方式对文件系统中的基本文本、excel、word等文件进行版本控制 更具体地说,我正在尝试向Crystal Reports文件添加文件版本属性,当客户端请求运行报告时,该文件从服务器流式传输到客户端C#简单文件版本控制,c#,file,filesystems,version,C#,File,Filesystems,Version,是否有一种.NET支持的方法可以通过编程方式对文件系统中的基本文本、excel、word等文件进行版本控制 更具体地说,我正在尝试向Crystal Reports文件添加文件版本属性,当客户端请求运行报告时,该文件从服务器流式传输到客户端FileVersionInfo仅支持读取文件版本,并且文件。GetAttributes仅获取隐藏的,只读的等内容 编辑:注意,我不需要在客户端保留这些文件的旧版本。我可以删除它们并用更新版本的报告文件替换它们。我只需要一种在客户端持久保存文件版本的方法 stri
FileVersionInfo
仅支持读取文件版本,并且文件。GetAttributes
仅获取隐藏的,只读的等内容
编辑:注意,我不需要在客户端保留这些文件的旧版本。我可以删除它们并用更新版本的报告文件替换它们。我只需要一种在客户端持久保存文件版本的方法
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();
普通文件没有这些属性。你必须从外部实施它们。还有人问这个问题
根据MSDN:
版本资源通常在Win32资源文件或程序集属性中指定。例如,IsDebug属性反映文件的VS_FIXEDFILEINFO块中的VS_FF_调试标志值,该块是从Win32资源文件中的VERSIONINFO资源生成的。有关在Win32资源文件中指定版本资源的详细信息,请参阅平台SDK中的“关于资源文件”和“VERSIONINFO资源”。有关在.NET模块中指定版本资源的详细信息,请参阅设置程序集属性主题。
因此,有一些本机方法可以将每个文件的属性存储在单独的“资源”文件中,但它将包括一些本机方法调用和.net warper类。Windows文件系统不直接支持版本控制。您可以使用一些支持版本控制的容器,但是您需要以某种方式将文件公开给操作系统?我也可以在Java中实现这一点,因此我研究了使用UserDefinedFileAttributeView
接口,但是在文件上创建版本后,Java似乎是唯一可以查看此版本的东西。我无法查看文件详细信息以查看附加到文件中的版本。为什么不连接到版本控制系统?我认为版本控制系统可以做到这一点,但我认为对于此解决方案来说,这太过分了。这些文件将只下载一次,或者在更新时下载,并且不会有太多。对这些文件的更新应该很少…感谢d.popov,我将不得不权衡我的选择,因为如果没有必要,我们不希望有单独的文件进行版本控制。