我試圖從多個文件中訪問元數據。我已經有了用於獲取元數據的代碼,但我需要能夠從不同文件夾中的多個文件中獲取。文件類型都是一樣的。這可能嗎?如果是這樣,它可以被添加到當前的代碼?從多個位置的多個文件中獲取元數據
事實上,我想抓取所有元數據並將其發送到數據庫進行比較。
這是我發現我以前從1檔獲得它在一個位置的代碼:
Imports System
Imports System.Collections.Generic
Imports System.Windows.Forms
Imports System.IO
Imports Shell32
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Call Main()
End Sub
Sub Main()
Dim FileName As String
FileName = "D:\Folder\Folder1\filename.pst"
Dim Properties As Dictionary(Of Integer, KeyValuePair(Of String, String)) = GetFileProperties(FileName)
For Each FileProperty As KeyValuePair(Of Integer, KeyValuePair(Of String, String)) In Properties
ListBox1.Items.Add(FileProperty.Value.Key & ": " & FileProperty.Value.Value)
Next
End Sub
Public Function GetFileProperties(ByVal FileName As String) As Dictionary(Of Integer, KeyValuePair(Of String, String))
Dim Shell As New Shell
Dim Folder As Folder = Shell.[NameSpace](Path.GetDirectoryName(FileName))
Dim File As FolderItem = Folder.ParseName(Path.GetFileName(FileName))
Dim Properties As New Dictionary(Of Integer, KeyValuePair(Of String, String))()
Dim Index As Integer
Dim Keys As Integer = Folder.GetDetailsOf(File, 0).Count
For Index = 0 To Keys - 1
Dim CurrentKey As String = Folder.GetDetailsOf(Nothing, Index)
Dim CurrentValue As String = Folder.GetDetailsOf(File, Index)
If CurrentValue <> "" Then
Properties.Add(Index, New KeyValuePair(Of String, String)(CurrentKey, CurrentValue))
End If
Next
Return Properties
End Function
End Class
在你的示例文件路徑是硬編碼的。您需要在List或字符串數組中獲取文件並對其進行迭代。 –