none
如何获取文件最后修改保存的用户 RRS feed

  • 问题

  • 请问如何用C#获取一个文档(word和excel)的最后编辑保存的用户名,我引用了shell32 里面的Folder.GetDetailsOf(),里面有很多的信息,例如有、创建的用户、创建时间、最后修改保存的时间 ,就是没有 last saved by的用户,我该如何才能获取?
    2015年12月3日 4:24

答案

  • shell本来就不跟踪最后保存文件的用户。Office有保留用户名,但是这个是取决于用户提供给office的名字,不是windows用户名。

    Office 2003或者之前的格式的文档是复合文档,可以去读文档的PIDSI_LASTAUTHOR属性,读取方法参考https://support.microsoft.com/en-us/kb/186898。

    2007之后的格式都是XML了,直接unzip之后读XML就可以。

    Windows Vista之后的系统上可以通过属性系统来读,属性名是System.Document.LastAuthor。用C#的话,可以用Microsoft.WindowsAPICodePack.Shell.PropertySystem里面的类。



    Visual C++ MVP

    • 已标记为答案 cycc 2015年12月4日 3:10
    2015年12月3日 6:21
    版主

全部回复

  • shell本来就不跟踪最后保存文件的用户。Office有保留用户名,但是这个是取决于用户提供给office的名字,不是windows用户名。

    Office 2003或者之前的格式的文档是复合文档,可以去读文档的PIDSI_LASTAUTHOR属性,读取方法参考https://support.microsoft.com/en-us/kb/186898。

    2007之后的格式都是XML了,直接unzip之后读XML就可以。

    Windows Vista之后的系统上可以通过属性系统来读,属性名是System.Document.LastAuthor。用C#的话,可以用Microsoft.WindowsAPICodePack.Shell.PropertySystem里面的类。



    Visual C++ MVP

    • 已标记为答案 cycc 2015年12月4日 3:10
    2015年12月3日 6:21
    版主
  • System.Document.LastAuthor和Microsoft.WindowsAPICodePack.Shell.PropertySystem 这两个DLL在哪里可以下载?

    2015年12月3日 8:03