Я надеюсь, что кто-то сможет указать мне в этом правильном направлении. Я потратил часы, пытаясь заставить мой код работать безуспешно.
Я написал программу в Visual Studio, используя VB. NET, которая открывала бы каталог, перебирала все файлы и переименовывала каждый / скопируйте их в новую папку. Теперь я пытаюсь заставить программу читать определенный атрибут каждого файла и включать его в имя файла. Это будет атрибут Media Created или Date Created. Похоже, я могу сделать это с помощью метода Folder.GetDetailsOf .
Пример кода, предоставленный Microsoft для VB, выглядит следующим образом:
Private Sub btnGetDetailsOf_Click()
Dim objShell As Shell
Dim objFolder As Folder
Set objShell = New Shell
Set objFolder = objShell.NameSpace("C:\WINDOWS")
If (Not objFolder Is Nothing) Then
Dim objFolderItem As FolderItem
Set objFolderItem = objFolder.ParseName("clock.avi")
If (Not objFolderItem Is Nothing) Then
Dim szItem As String
szItem = objFolder.GetDetailsOf(objFolderItem, 2)
End If
Set objFolderItem = Nothing
End If
Set objFolder = Nothing
Set objShell = Nothing
End Sub
Однако, когда пытаясь скомпилировать, я получаю много ошибок, в том числе не определены Shell, Folder и FolderItem.
После большого количества поисков и чтений статей я дошел до этого момента с моим кодом, но он выдает ошибку, когда пытаюсь установить objFolderItem.
Dim di As New DirectoryInfo(c:\folder)
Dim fileArray As FileInfo() = di.GetFiles()
Dim file As FileInfo
Dim objShell As Object
Dim objFolder As Object
Dim objFolderItem As Object
objShell = CreateObject("Shell.Application")
objFolder = objShell.NameSpace(c:\folder) 'create folder object
For Each file In fileArray
objFolderItem = objFolder.ParseName(file.Name) 'create file object
MsgBox(objFolder.getdetailsof(objFolderItem, 201))
Next file
Когда я проверяю работающий код, кажется, что objShell.NameSpace ничего не возвращает.
Может кто-нибудь посоветовать, как я могу создать исправление objShell в VB. NET или предоставить обновленную версию примера кода Microsoft, чтобы я мог использовать это в качестве основы?
Спасибо