我正在尝试使用 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 是帧高/帧宽吗?我如何知道他们是否会在其他计算机上检索相同的详细信息,而无需在一堆其他计算机上进行测试?
谢谢。