CommonDialog控件取多个文件时为什么只有路径而没有路径名
求教:CommonDialog控件取多个文件时为什么只有路径而没有路径名?
代码中如果不加上注释部分,那么list1里只显示路径而没有路径名,不明白是怎么回事
------解决方案--------------------
用
filenames = Split(CommonDialog1.FileName, Chr(0))
代替你的循环
------解决方案--------------------
需要加上注释掉的部分。在多选的情况下,第一个记录是路径,其他才是所选的文件名。见下例:
Private Sub Command1_Click()
Dim i As Integer
Dim y As Integer
Dim z As Integer
Dim filenames$()
CommonDialog1.Flags = cdlOFNAllowMultiselect + cdlOFNExplorer
CommonDialog1.FileName = ""
CommonDialog1.Filter = "TXT文件(*.TXT)|*.TXT|所有文件(*.*)|*.*"
CommonDialog1.InitDir = "D:\"
CommonDialog1.Action = 1
CommonDialog1.FileName = CommonDialog1.FileName & Chr(0)
z = 1
For i = 1 To Len(CommonDialog1.FileName)
i = InStr(z, CommonDialog1.FileName, Chr(0))
If i = 0 Then Exit For
ReDim Preserve filenames(y)
filenames(y) = Mid(CommonDialog1.FileName, z, i - z)
z = i + 1
y = y + 1
Next
If y = 1 Then
List1.AddItem filenames(0)
Else
For i = 0 To y - 1
If i > 0 Then
filenames(i) = filenames(0) '+ "\" + filenames(i)
List1.AddItem filenames(i)
End If
Next
End If
End Sub
代码中如果不加上注释部分,那么list1里只显示路径而没有路径名,不明白是怎么回事
------解决方案--------------------
用
filenames = Split(CommonDialog1.FileName, Chr(0))
代替你的循环
------解决方案--------------------
需要加上注释掉的部分。在多选的情况下,第一个记录是路径,其他才是所选的文件名。见下例:
Dim temp() As String, i As Long
CommonDialog1.Flags = cdlOFNAllowMultiselect Or cdlOFNExplorer
CommonDialog1.Filter = "(*.JPG)
------解决方案--------------------
*.JPG
------解决方案--------------------
(*.Bmp)
------解决方案--------------------
*.Bmp
------解决方案--------------------
(*.Gif)
------解决方案--------------------
*.Gif"
CommonDialog1.FileName = ""
CommonDialog1.ShowOpen
If CommonDialog1.FileName = "" Then Exit Sub
If InStr(1, CommonDialog1.FileName, Chr(0)) = 0 Then ‘选择了1 个文件
lstPic1.AddItem CommonDialog1.FileName
Else ‘选择了多个文件
temp = Split(CommonDialog1.FileName, Chr(0))
For i = 1 To UBound(temp)
lstPic1.AddItem temp(0) & "\" & temp(i)
Next i
End If