嘗試使用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