Private Sub Command1_Click()
Dim s, p As String
CommonDialog1.FileName = ""
CommonDialog1.Filter = "*.csv"
CommonDialog1.Flags = cdlOFNAllowMultiselect Or cdlOFNExplorer
CommonDialog1.MaxFileSize = 32767
CommonDialog1.ShowOpen
If CommonDialog1.FileName <> "" Then
List1.Clear
Insert_Text (CommonDialog1.FileName)'插入到文本框
p = Split(CommonDialog1.FileName, vbNullChar)(0)
For Each s In Split(CommonDialog1.FileName, vbNullChar)
List1.AddItem p & s
Next
List1.RemoveItem 0
End If
End Sub运行结果是
Insert_Text (CommonDialog1.FileName)'插入到文本框
这里的CommonDialog1.FileName是
I:\89a226490b99253b15eb\i386List1里显示的是
List1里的路径就不对了i386之后应该有个\,但是这里没有,之后就没法获取正确的路径我这样调用有问题 吗?我想可能是For Each s In Split(CommonDialog1.FileName, vbNullChar)这里的问题。我这个从百度找的,我不理解为什么要加vbNullChar求解决方法
Dim s, p As String
CommonDialog1.FileName = ""
CommonDialog1.Filter = "*.csv"
CommonDialog1.Flags = cdlOFNAllowMultiselect Or cdlOFNExplorer
CommonDialog1.MaxFileSize = 32767
CommonDialog1.ShowOpen
If CommonDialog1.FileName <> "" Then
List1.Clear
Insert_Text (CommonDialog1.FileName)'插入到文本框
p = Split(CommonDialog1.FileName, vbNullChar)(0)
For Each s In Split(CommonDialog1.FileName, vbNullChar)
List1.AddItem p & s
Next
List1.RemoveItem 0
End If
End Sub运行结果是
Insert_Text (CommonDialog1.FileName)'插入到文本框
这里的CommonDialog1.FileName是
I:\89a226490b99253b15eb\i386List1里显示的是
List1里的路径就不对了i386之后应该有个\,但是这里没有,之后就没法获取正确的路径我这样调用有问题 吗?我想可能是For Each s In Split(CommonDialog1.FileName, vbNullChar)这里的问题。我这个从百度找的,我不理解为什么要加vbNullChar求解决方法
连上个就是
List1.AddItem p & s & "\"就是了
Dim SelectFile$, i%, PathList$(), S '定义变量
Private Sub Command1_Click()
On Error GoTo Errh
CommonDialog1.FileName = ""
With CommonDialog1
.DialogTitle = "请选择文件"
.CancelError = True
.Filter = "图片格式(*.bmp;*.jpg;*.gif;*.png;*.ico)|*.bmp;*.jpg;*.gif;*.png;*.ico|位图格式(*.bmp)|*.bmp|GIF格式(*.gif)|*.gif|JPEG格式(*.jpg)|*.jpg|PNG格式(*.png)|*.png"
.Flags = cdlOFNAllowMultiselect Or cdlOFNExplorer '复选文件必加
.MaxFileSize = 32767
.ShowOpen
End With
SelectFile = CommonDialog1.FileName
List1.Clear
S = Split(SelectFile, Chr(0))
ReDim Preserve PathList$(UBound(S))
'*******************************************************************************
If UBound(S) = 0 Then
List1.AddItem S(0) 'CommonDialog1.FileTitle
PathList(0) = S(0)
Else
S(0) = IIf(Right(S(0), 1) = "\", S(0), S(0) & "\")
For i = 1 To UBound(S)
List1.AddItem S(0) & S(i)
PathList(i - 1) = S(0) & S(i)
Next i
End If
Errh:
If Err > 0 Then Exit Sub
End SubPrivate Sub List1_Click()
MsgBox PathList(List1.ListIndex)
End Sub
不过也不是List1.AddItem p & s & "\" 而是List1.AddItem p & "\" & s 谢谢 给分结贴