VB2008读取文件夹中所有文件JPG

文件夹Photos路径下有868张照片,问如何将他们逐一读取到listbox,并得到文件照相时间。另外还有三个Picturebox控件,当在listbox中单击文件后,picturebox1显示listbox选定项前一张照片,picturebox2显示当前选定照片,picture3显示后一张,问大哥大姐们如何实现。(本来想给200分,但是最多只有100,往后会加的)
jutanqjia-我原来就是用这个办法,但是他会提示,超出索引边界
juyangjia-.NET中的确有Microsoft.VisualBasic,不是_G63愚昧,可能是您几月不用忘记了吧,你们二人回答似乎都很好。
QQ:869356372

用Microsoft.VisualBasic.FileIO.Filesystem.GetFiles方法。在文件名参数写"*.jpg"就行了。返回ReadOnlyCollection。记住:READONLYCOLLECTION的Item属性最大值为Count-1不是count
然后用for循环将readonlycollection的项添加到ListBox控件。把邮箱给我,过两天把代码发给你
代码

On Error Resume Next'最好使用VB.NET 的Try catch语句块
dim Loopint1 as integer,tmpstr1,tmpstr3 as string
Dim flist As System.Collections.ObjectModel.ReadOnlyCollection(Of String)
fList=Microsoft.VisualBasic.FileIO.FileSystem.GetFiles(gfPath, FileIO.SearchOption.SearchTopLevelOnly, "*.jpg")
x = flist.Count
For LoopInt1 = 0 To x - 1 '循环控制
tmpstr3 = "" '清空属性字符串
tmpstr1 = flist.Item(LoopInt1)
IntInStr = InStrRev(tmpstr1, "\")
tmpstr2 = Microsoft.VisualBasic.Strings.Right(tmpstr1, Len(tmpstr1) - IntInStr)'只得到文件名,如果要完整路径就要循环里第二行即可
Listbox1.Items.Add(tmpstr2)'添加内容
Next
'其实完全可以制作一个VB6的文件列表框,加上Listview,资源管理器也是可以做的,只不过图标控制比较麻烦而已
'照相时间要获得EXIF信息,这个我不知道,你上网找找看
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-08-12
楼上说得都很好啊。总结一下,首先肯定是要循环得到文件名,你可以用一个变量来存储路径,然后遍历文件夹中的jpg文件,把这些文件名放在你要放的地方,至于你说会越界,肯定是你代码的问题。
至于显示应该不用多说。
显示照相时间是绝对不可能的,不过如果你的照片没经过修改的话,就可以通过它的修改时间来确定照相时间,因为文件应该是照相的时候创建和修改的,到你机器上修改时间是不会变的。
至于都用什么函数,自己琢磨一下就差不多了
第2个回答  2010-08-08
读取文件列表用File类,循环文件夹,把文件名称写到LISTBOX,点击一个文件名称,将那个文件的路径生成然后设置到image去,再用你选取的list值+1和-1获得前后的名称。注意使用流操作,不然经常文件被占用会报错。
至于获得照相时间不可能,获取图片创建时间到是可以。也是一个命名空间的类。我只能说这些了,如果写代码我没时间

索引超出边界我以前经常遇到,有个操作会产生,我忘了,你注意打印出变量来看是哪个地方的边界超出。

我已经改用java了,有几个月没搞。net了

_G63 朋友,.net里的文件操作在system命名空间下,怎么又冒出Microsoft.VisualBasic来了,在下愚昧
第3个回答  2010-08-09
你点击的时候要检查是不是第一个,是不是最后一个。因为你只是简单的+1 -1 的话就可能超出范围了。
相似回答