标题:在线急等
只看楼主
kamiao
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2005-7-27
 问题点数:0 回复次数:11 
在线急等
下面的代码是让comdialog打开的对话框中实现多选,并找到路径。我想把所有选中的文件
名字及路径都放到一个listbox框中,用这样修改代码?请大侠帮忙。谢谢







Dim repName As String
    Dim SelectFile() As String
    Dim i As Integer
    '选择导入的文件(可多选)
    ComDialog.Flags = cdlOFNAllowMultiselect + cdlOFNExplorer
    ComDialog.FileName = ""
    ComDialog.ShowOpen
    repName = ComDialog.FileName
    If repName = "" Then Exit Sub
    '将选择的文件用数组表示
    SelectFile = Split(repName, Chr(0))
    If UBound(SelectFile) = 0 Then
        ReDim SelectFile(1)
        SelectFile(1) = ComDialog.FileTitle
        SelectFile(0) = Left(repName, Len(repName) - Len(SelectFile(1)) - 1)
    End If
 
' SelectFile(0)中存放的是选择的路径
' SelectFile(1),...中存放的是选择的的文件名
搜索更多相关主题的帖子: 在线 
2005-08-12 14:35
kamiao
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2005-7-27
得分:0 
我的意思实际就是把comdialog打开的对话框中选中的多项记录的路径及文件名显示到listbox中,有那位大侠帮忙实现,我很急,谢谢了
2005-08-12 14:55
kamiao
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2005-7-27
得分:0 
我都快急死了,难道这里就没有这方面的高手吗?
2005-08-12 16:09
ruhong
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2005-8-9
得分:0 

Dim mydir As String, i As Integer Private Sub Command1_Click() '使用comdialog选择多项文件,其finename属性中,文件名之间是用空格隔开的. ComDialog.Flags = cdlOFNAllowMultiselect + cdlOFNExplorer ComDialog.FileName = "" ComDialog.ShowOpen If Len(ComDialog.FileName) = 0 Then Exit Sub '如果什么都没有选择,直接退出 i = InStr(1, ComDialog.FileName, Chr(0)) '取得第一个空格的位置 If i = 0 Then '如果为0,说明没有空格,也就是只选择一个文件,直接加入listbox Lst1.AddItem ComDialog.FileName 'lst1是listbox Else mydir = Mid(ComDialog.FileName, 1, i) '取得第一个空格前的字符,也就是目录名 If Len(mydir) = 4 Then mydir = Left(mydir, 3) '如果只有四个字符,说明是在磁盘的根目录下,也就是c:\,这时候得把 \ 字符去掉 Do While i <> 0 '循环,直到没有匹配的空格 Lst1.AddItem Left(mydir, Len(mydir) - 1) & "\" & Mid(ComDialog.FileName, i + 1) ' Len(mydir) - 1)是为了把空格去掉,否则字符连接不成功,i+1是从空格之后开始取字符 i = InStr(i + 1, ComDialog.FileName, Chr(0)) '寻找下一个匹配的字符 Loop End If End Sub

'本人只知其然,不知其所以然,只能整出结果来,更具体的原因,只能靠你自己摸索了.

2005-08-12 16:39
kamiao
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2005-7-27
得分:0 
谢谢你,我试试
2005-08-12 16:49
kamiao
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2005-7-27
得分:0 
我想再问一下,如果我加如到listbox框中的是歌曲的路径,那么,这样设置才能使我用鼠标点击那个文件就让播放器播放哪个文件呢?就好比说像做一个播放列表那样,点几列表中的文件就开始播放那个文件。谢谢
2005-08-12 17:03
ruhong
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2005-8-9
得分:0 
你可以在listbox的DblClick事件中, 将lst1.text赋值给播放器好了,lst1.text就是完整的文件路径及文件名.
还有如果你是要播放歌曲,你必须得限定他的类型,在showopen方法前设定一下Filter属性.
ComDialog.Filter = "mp3(*.mp3)|*.mp3|mpeg (*.mpeg)|*.mpeg"
2005-08-12 17:14
kamiao
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2005-7-27
得分:0 
Filter属性我懂,我做过播放器,但是没有做播放列表,所以不知道这样做,我现在不明白的是,在程序运行前,listbox中没有文件,我这样设置程序运行后的listbox中的某一个歌曲的DblClick事件呢?
2005-08-12 17:26
ruhong
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2005-8-9
得分:0 
你的意思我不太明白,
2005-08-12 17:48
kamiao
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2005-7-27
得分:0 
我的意思是说如何获得lst1.text的值
2005-08-13 09:03



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-24978-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.411122 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved