我正在尝试从文件(主要是 doc 和 xls)中读取和写入属性列表,例如标题、作者、标签或评论。我可以轻松获得基本属性,但不能获得这些扩展属性。
GetDetailsOf曾经工作(https://technet.microsoft.com/en-us/library/ee176615.aspx?f=255&MSPPError=-2147217396)但是现在它停止在索引6处。
根据文档(https://docs.microsoft.com/en-us/windows/desktop/shell/shellfolderitem-extendedproperty)。ExtendedProperty应该能够读取属性,但它不会返回其中的大部分。例如 Author(s),甚至在上面的链接中作为示例引用(有两种方法可以指定属性。第一种是分配属性的知名名称,例如“Author”),不返回任何内容。
还有其他方法吗?
单个文件的测试脚本:
Sub PrintDocumentProperties()
With CreateObject("Shell.Application").Namespace("D:\VBA")
MsgBox .GetDetailsOf(.Items.Item("derp.xlsm"), 5) & vbNewLine & _
.Items.Item("derp.xlsm").ExtendedProperty("Date modified") & vbNewLine & _
.Items.Item("derp.xlsm").ExtendedProperty("Type") & vbNewLine & _
.Items.Item("derp.xlsm").ExtendedProperty("Size") & vbNewLine & _
.Items.Item("derp.xlsm").ExtendedProperty("Author") & vbNewLine & _
.Items.Item("derp.xlsm").ExtendedProperty("Authors")
End With
End Sub