尝试使用Excel VBA从文件中捕获文件中的所有文件属性,包括扩展属性。之所以能够通过文件得到它的循环和捕捉的基本属性(即来自文件系统):使用VBA获取扩展文件属性
- 文件路径
- 文件名
- 文件大小
- 创建日期
- 日期上次访问
- 最后修改日期
- 文件类型
还要捕捉来自文件本身的扩展属性:
- 作者
- 关键词
- 评论
- 最后作者
- 类别
- 主题
等支柱在右击文件时可见的副本。
目标是创建文件服务器上所有文件的详细列表。
尝试使用Excel VBA从文件中捕获文件中的所有文件属性,包括扩展属性。之所以能够通过文件得到它的循环和捕捉的基本属性(即来自文件系统):使用VBA获取扩展文件属性
还要捕捉来自文件本身的扩展属性:
等支柱在右击文件时可见的副本。
目标是创建文件服务器上所有文件的详细列表。
你说loop ..所以如果你想这样做的目录,而不是当前的文件;
Dim sFile As Variant
Dim oShell: Set oShell = CreateObject("Shell.Application")
Dim oDir: Set oDir = oShell.Namespace("c:\foo")
For Each sFile In oDir.Items
Debug.Print oDir.GetDetailsOf(sFile, XXX)
Next
其中XXX是attribure列索引,9作者例如。 要列出可供您参考的索引,您可以用for替换for循环;
for i = 0 To 40
debug.? i, oDir.GetDetailsOf(oDir.Items, i)
Next
迅速为一个单一的文件/属性:
Const PROP_COMPUTER As Long = 56
With CreateObject("Shell.Application").Namespace("C:\HOSTDIRECTORY")
MsgBox .GetDetailsOf(.Items.Item("FILE.NAME"), PROP_COMPUTER)
End With
你可以通过.BuiltInDocmementProperties
得到它。
例如:
Public Sub PrintDocumentProperties()
Dim oApp As New Excel.Application
Dim oWB As Workbook
Set oWB = ActiveWorkbook
Dim title As String
title = oWB.BuiltinDocumentProperties("Title")
Dim lastauthor As String
lastauthor = oWB.BuiltinDocumentProperties("Last Author")
Debug.Print title
Debug.Print lastauthor
End Sub
你可以用这个访问的所有字段看到这个页面:http://msdn.microsoft.com/en-us/library/bb220896.aspx
如果你想做到这一点,客户端之外(即用Excel关闭,从.NET程序运行代码),则需要使用DSOFile.dll。
我的问题不是很清楚。我试图从磁盘上的文件捕获文件属性。这看起来像是从打开的文档中读取属性。我如何从磁盘上的文件获取属性? – 2011-04-13 16:35:57
啊,它被标记为Excel-VBA,所以我认为你想从客户端内部做到这一点。对于客户端外部(即从磁盘读取),您可以使用DSOFile。dll(我答案中的最后一段)。 – 2011-04-13 17:07:33
更改了标签,因为这与Excel无关。 – 2011-04-14 00:50:44
'vb.net
'Extended file stributes
'visual basic .net sample
Dim sFile As Object
Dim oShell = CreateObject("Shell.Application")
Dim oDir = oShell.Namespace("c:\temp")
For i = 0 To 34
TextBox1.Text = TextBox1.Text & oDir.GetDetailsOf(oDir, i) & vbCrLf
For Each sFile In oDir.Items
TextBox1.Text = TextBox1.Text & oDir.GetDetailsOf(sFile, i) & vbCrLf
Next
TextBox1.Text = TextBox1.Text & vbCrLf
Next
另请参阅Microsoft网站:http://technet.microsoft.com/en-us/library/ee176615.aspx – 2012-09-17 15:46:04
对于这些指向的用户,这已经过时了一点。现在有288个属性可以使用。例如,文件版本271.更新for循环以查看全部。 http://msdn.microsoft.com/en-us/library/windows/desktop/bb787870(v=vs.85).aspx – TrialAndError 2013-07-25 14:25:15
进一步更新:当某个过去的这个夏天(2017年)6以上所有指标都是无效,只返回空字符串。 – 2017-11-06 19:06:29