首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

公用对话框的那个属性是取得选取文件文件名?该如何处理

2012-01-15 
公用对话框的那个属性是取得选取文件文件名????CommonDialog1.FileName这样是整个路径,我只想要文件名和扩

公用对话框的那个属性是取得选取文件文件名????
CommonDialog1.FileName     这样是整个路径,我只想要文件名和扩展名


[解决办法]
Function OpenFile(strFileInfor As String, strFileType As String, blnIsMulti As Boolean, OpenFileDialog As Control) As String()

' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '
'OpenFileDialog 通用对话框
'strstrfileInfor 文件提示
'strstrfileType 文件类型,扩展名
'blnblnismulti 是否为多选
'返回为文件名数组,OpenFile(0)存放文件路径,从1开始存放文件名,包括只有一个文件时的情况。
'返回的路径中已经包含了最后的 "\ "
'如果没有选择任何文件,OpenFileFuction(0)返回为 " "
' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '
'设置打开文件对话框过滤器
OpenFileDialog.Filter = strFileInfor & "| " & strFileType

'设定是否可以多选
If blnIsMulti Then
OpenFileDialog.Flags = &H80200
OpenFileDialog.MaxFileSize = 1024 '设置使用 CommonDialog 控件被打开的文件名的最大尺寸
Else
OpenFileDialog.Flags = 0
End If
OpenFileDialog.ShowOpen

'提取各文件名
Dim tempStr As String
Dim tempFileName() As String

tempStr = OpenFileDialog.FileName
'如果用户取消了,或没有选择任何文件,处理返回仍为数组形式,OpenFileFuction(0)为 " "
If tempStr = " " Then
ReDim tempFileName(0)
tempFileName(0) = " "
OpenFile = tempFileName
Exit Function
End If


Dim P, N As Long
P = 0 '分隔字符位置
N = 0 '文件个数

'提取路径
ReDim tempFileName(1) '至少有一个文件
P = InStr(tempStr, Chr(160)) '为UNICODE

If P = 0 Then '如果只选择了一个文件
P = InStrRev(tempStr, "\ ") 'P取得 "\ "所在位置
tempFileName(0) = Left(tempStr, P - 1)
tempFileName(1) = Mid(tempStr, P + 1)


Else '选择了多个文件
Do While tempStr <> " "
P = InStr(tempStr, Chr(160)) '为UNICODE
ReDim Preserve tempFileName(N)

'如果没有空格(只剩余一个文件)
If P = 0 Then
tempFileName(N) = tempStr
Exit Do
Else
tempFileName(N) = Left(tempStr, P - 1)
tempStr = Mid(tempStr, P + 1)
N = N + 1
End If
Loop
End If

'处理路径
tempStr = tempFileName(0)
tempFileName(0) = IIf(Len(tempStr) = 3, tempStr, tempStr & "\ ")

'返回文件名数组
OpenFile = tempFileName

'还原为单选
OpenFileDialog.Flags = 0

End Function
[解决办法]
filetitle属性

热点排行