正在尝试使用Excel VBA从磁盘上的文件捕获所有文件属性,包括扩展属性。能够让它遍历文件并捕获基本属性(来自文件系统):
我还想捕获来自文件本身的扩展属性:
以及当右击文件时可见的其他属性。
目标是创建文件服务器上所有文件的详细列表。
发布于 2011-04-14 00:20:54
你说循环..。因此,如果你想对一个目录而不是当前文档执行此操作;
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是属性列索引,例如,9代表Author。若要列出可供引用的索引,可以将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
发布于 2011-04-13 23:57:15
您可以使用.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。
发布于 2016-06-03 01:05:26
'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
https://stackoverflow.com/questions/5651890
复制相似问题