跟踪Excel和Word文件版本的最佳方法是什么?
上次修改日期对我不起作用,因为它会在您将文件复制到新位置后立即更改。
我正在使用c#。
任何回复的Thx。
答案 0 :(得分:1)
也许Aspose可以提供帮助:
http://www.aspose.com/docs/display/wordsnet/Working+with+Document+Properties
我认为Open XML SDK中有类似的东西,但没有检查。
答案 1 :(得分:1)
Office文档中有 DateLastSaved OLE文档属性。有两种方法可以获取Office文档属性。我更喜欢使用Micorsoft DSO DLL来访问这些属性。您可以从http://www.microsoft.com/en-us/download/details.aspx?id=8422获取文件。
以下是使用DSO DLL的示例
DSOFile.OleDocumentPropertiesClass oleDocumentPropertiesClass =
new DSOFile.OleDocumentPropertiesClass();
oleDocumentPropertiesClass.Open("C:\\My Documents\\some excel file.xlsx");
MessageBox.Show(oleDocumentPropertiesClass.SummaryProperties.DateLastSaved.ToString());
如果您更喜欢使用Windows API,请参考以下示例Reading MS Office XML document properties using WindowsAPI Code Pack fails on server
答案 2 :(得分:1)
取决于您拥有的用户数量,以及您可能考虑查看正式版本控制工具的审计跟踪的重要性。其中相当一部分为文件数量有限的小组提供免费版本,git或subversion等工具是免费的(至少可以)。这些工具可以为您提供所有内容,人员,日期,时间内容,以及回滚和比较版本等便利项目......当然可能有点过分......
答案 3 :(得分:0)
我认为 FileInfo 的属性 LastWriteTime 应解决此问题
在此示例中,模式可以是“Letter.doc”或“Worksheet.xls”
和 PATH_TO_TRAKING_FOLDER 是可以包含您要跟踪的word / excel文件的不同版本的基本文件夹
using System.IO;
class Foo
{
public method Bla()
{
DirectoryInfo dir;
List<FileInfo> lstFiles;
string pattern ;
string line ;
//pattern can be something like "Letter.doc" or "Worksheet.xls"
pattern = "OfficeFile.extension" ;
//is the base folder that can contains the different versions of the word/excel files that you are tracking
dir = new DirectoryInfo("PATH_TO_TRAKING_FOLDER");
lstFiles = new List<FileInfo>(dir.EnumerateFiles(pattern, SearchOption.AllDirectories).OrderBy(x => x.LastWriteTime) ;
foreach(FileInfo fi in lstFiles)
{
line = Strin.format("{0}:{1}", fi.Name,fi.LastWriteTime) ;
Console.WriteLine(line) ;
}
}
}