我有一个文件夹,其中包含一年内点击的大量照片。
使用不同的相机点击照片,因此文件的名称采用不同的格式(遵循不同的模板),我想按事件组织图像,我想根据逻辑使用make的日期来排序和重命名照片。
使用此代码时,从图像中检索元数据非常简单:
Public Sub GetMetadata()
Dim objFSO As Object
Dim objFolder As Object
Set objFSO = CreateObject("Shell.Application")
Set objFolder = objFSO.Namespace("C:\Users\fabrizio.carboni\Desktop\fotonido\")
For i = 0 To 40
Debug.Print i, objFolder.GetDetailsOf(objFolder.Items, i)
Next
End Sub
这是我的问题,意大利语是:
0 Nome
1 Dimensione
2 Tipo elemento
3 Ultima modifica
4 Data creazione
5 Data ultimo accesso
6 Attributi
如果我尝试
For Each objFoto In objFolder.Items
'print file name
strFotoName = objFoto.Nome
............
我收到错误,我怎样才能检索每个元数据名称的英文名称?!??
抱歉这个微不足道的问题,但即使在google上我也找不到解决方案。
答案 0 :(得分:1)
您有两种解决方案:
使用局部变量窗口获取这些属性的名称
使用早期绑定启用IntelliSense :
添加Microsoft Shell Automation作为参考(%Windir%\ System32 \ Shell32.dll)
编辑1:
根据您的评论,这里是如何打印创建日期。只需用以下方法切换旧循环:
For Each element In objFolder.Items
Debug.Print (objFolder.GetDetailsOf(element, 4))
Next
4是创建日期的索引。您也可以使用其他细节。更多信息请访问:https://msdn.microsoft.com/en-us/library/windows/desktop/bb787870(v=vs.85).aspx