Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#简单文件版本控制_C#_File_Filesystems_Version - Fatal编程技术网

C#简单文件版本控制

C#简单文件版本控制,c#,file,filesystems,version,C#,File,Filesystems,Version,是否有一种.NET支持的方法可以通过编程方式对文件系统中的基本文本、excel、word等文件进行版本控制 更具体地说,我正在尝试向Crystal Reports文件添加文件版本属性,当客户端请求运行报告时,该文件从服务器流式传输到客户端FileVersionInfo仅支持读取文件版本,并且文件。GetAttributes仅获取隐藏的,只读的等内容 编辑:注意,我不需要在客户端保留这些文件的旧版本。我可以删除它们并用更新版本的报告文件替换它们。我只需要一种在客户端持久保存文件版本的方法 stri

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

更具体地说,我正在尝试向Crystal Reports文件添加文件版本属性,当客户端请求运行报告时,该文件从服务器流式传输到客户端
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,我将不得不权衡我的选择,因为如果没有必要,我们不希望有单独的文件进行版本控制。