我正在尝试使用 vb.net 中的 GetDetailsOf 获取图像或视频文件的分辨率,但我不明白如何将文件加载到 shell32.folderitem 中,所以我正在以一种非常迂回的方式进行操作。
OpenFileDialog1.ShowDialog()
Dim fi As New FileInfo(OpenFileDialog1.FileName)
Dim shell As New Shell32.Shell
Dim objFolder As Shell32.Folder
objFolder = shell.NameSpace(fi.DirectoryName)
For i As Integer = 0 To objFolder.Items.Count - 1
If objFolder.Items(i).name = fi.Name Then
Console.WriteLine(objFolder.GetDetailsOf(objFolder.Items(i), 31))
Console.WriteLine(objFolder.GetDetailsOf(objFolder.Items(i), 282))
Console.WriteLine(objFolder.GetDetailsOf(objFolder.Items(i), 280))
End If
Next
我只是在文件夹中循环,直到找到与我的文件匹配的内容。有没有更清洁、更快的方法来做到这一点?我只需要从完整文件名中获得一个 shell32.FolderItem。
另外,我可以依靠 Detail 31 始终是分辨率,而 280/282 是帧高/帧宽吗?我如何知道他们是否会在其他计算机上检索相同的详细信息,而无需在一堆其他计算机上进行测试?
谢谢。