如何使用文件选择框来取得文件路径?

muzuiget 2005-07-20 12:50:02
我想实现的是,按下一个按钮,然后弹出一个文件选择框(就是选择一个文件作用的),比如返回的一个值"c:\abcd\1234.exe",有什么办法可以从中取得"c:\abcd\"?
...全文
279 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
myhgyp 2005-07-20
  • 打赏
  • 举报
回复
MsgBox Mid("c:\abcd\1234.exe", 1, InStrRev("c:\abcd\1234.exe", "\"))

Dim str As String
str = "c:\abcd\1234.exe"
MsgBox Mid(str, 1, InStrRev(str, "\"))
jxgzay 2005-07-20
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
Dim x() As String '定义动态数组
CommonDialog1.ShowOpen
File_name = CommonDialog1.FileName
x = Split(File_name, "\") '以"\"分隔
n = UBound(x)
ReDim Preserve x(n - 1) '数组下标减少1
File_path = Join(x, "\") '合并
MsgBox "文件的路径是:" & vbCrLf & File_path
End Sub
ynsmcn 2005-07-20
  • 打赏
  • 举报
回复
也可以直接选择需要文件的父文件夹

Public Type BrowseInfo
hwndOwner As Long
pIDLRoot As Long
pszDisplayName As Long
lpszTitle As Long
ulFlags As Long
lpfnCallback As Long
lParam As Long
iImage As Long
End Type

Public Const BIF_RETURNONLYFSDIRS = 1
Public Const MAX_PATH = 260

Public Declare Sub CoTaskMemFree Lib "ole32.dll" (ByVal hMem As Long)
Public Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long
Public Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) As Long
Public Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As Long, ByVal lpBuffer As String) As Long

Public Function BrowseForFolder(hwndOwner As Long, sPrompt As String) As String

'declare variables to be used
Dim iNull As Integer
Dim lpIDList As Long
Dim lResult As Long
Dim sPath As String
Dim udtBI As BrowseInfo

'initialise variables
With udtBI
.hwndOwner = hwndOwner
.lpszTitle = lstrcat(sPrompt, "")
.ulFlags = BIF_RETURNONLYFSDIRS
.pIDLRoot = 0&
End With

'Call the browse for folder API
lpIDList = SHBrowseForFolder(udtBI)

'get the resulting string path
If lpIDList Then
sPath = String$(MAX_PATH, 0)
lResult = SHGetPathFromIDList(lpIDList, sPath)
Call CoTaskMemFree(lpIDList)
iNull = InStr(sPath, vbNullChar)
If iNull Then sPath = Left$(sPath, iNull - 1)
End If

'If cancel was pressed, sPath = ""
BrowseForFolder = sPath

End Function

可以参考:
http://dev.csdn.net/develop/article/27/27156.shtm
muzuiget 2005-07-20
  • 打赏
  • 举报
回复
太感谢myhgyp(也许是这样的,信不信由你)了!一句话简洁明了~
wudeqing 2005-07-20
  • 打赏
  • 举报
回复
private sub dirve1_change()
drv1.path=dirve1.dirve
end sub

private sub drv1_change()
text1.text=drv1.path
end sub
zhanshua 2005-07-20
  • 打赏
  • 举报
回复
先查到到第二个“\”的位置,然后MID,呵呵

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧