vb中在界面上如何设计使输出路径可在盘符下文件夹中可选,还可以建立新文件夹

要在输出文件的时候可以选择路径怎么办啊,Open"c:\UTCR\"+"CDIM"+"__"+CStr(x7)ForOutputAs#1... 要在输出文件的时候可以选择路径怎么办啊,Open "c:\UTCR\" + "CDIM" + "__" + CStr(x7) For Output As #1 展开
 我来答
ricky43
2012-09-25 · TA获得超过2354个赞
知道大有可为答主
回答量:1687
采纳率:66%
帮助的人:723万
展开全部

 

'=======================================================================

'以下部分代码放在模块中

 

Option Explicit


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 ForFolder(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

     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 = ""

     ForFolder = sPath


End Function



'在窗体上放一个按钮控件,一个文本框控件,输入以下代码:

 

Private Sub Command1_Click()

pa2 = ForFolder(hWnd, "请选择目录")

If Right(pa2, 1) <> "\" Then pa2 = pa2 + "\"

Text1.Text = pa2

End Sub 

追问

太感谢了,不过我试着弹出几个对话框,不能正常

 

 

Public Const BIF_RETURNONLYFSDIRS = 1

Public Const MAX_PATH = 260

这段好像不对

追答

注意上面的代码要放到模块里面啊~!

 

百度网友4b68195
2012-09-25 · TA获得超过1522个赞
知道大有可为答主
回答量:1773
采纳率:100%
帮助的人:1756万
展开全部
  利用CommonDialog 控件
追问
能给我一段代码吗,我主要是可以通过自己选择输出的目录,但是这个输出的TXT是新建的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式