【发布时间】:2013-06-24 00:59:28
【问题描述】:
我正在尝试使用 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 作为帧高/帧宽吗?我如何知道他们是否会在其他计算机上检索相同的详细信息而无需在一堆其他计算机上进行测试?
谢谢。
【问题讨论】:
标签: .net vb.net syntax file-attributes shell32.dll