恩,关于创建文件夹的问题。如果我有个表示文件路径的string 如a=h:\vb\work\today\yes.txt但是驱动器h:中没有vb\work\today\的这些文件夹,我怎么去创建啊,特别是象上面的情况有很多的话。

解决方案 »

  1.   

    Private Sub Command1_Click()
        MkDir "H:\vb\work\today"End Sub提示错误是路径没有找到
      

  2.   

    可能是你还没有建上一级的文件夹。
    比如h:\vb\work
      

  3.   

    '错误处理你自己加吧:
    Option ExplicitPrivate Sub Command1_Click()
        Dim s As String
        s = "c:\wmsdk\e\f\g"
        createfolder s
    End Sub
    Private Sub createfolder(ByVal path As String)
        Dim arr
        arr = Split(path, "\")
        Dim i As Long
        Dim s As String
        s = arr(0)
        For i = 1 To UBound(arr)
            s = s + "\" + arr(i)
            On Error Resume Next
            MkDir s
        Next
    End Sub
      

  4.   

    不需要FSO,只要MkDir()函数就可以了。VB内置的
      

  5.   

    创建多级目录的函数,你可以直接调用:Public Type SECURITY_ATTRIBUTES
        nLength As Long
        lpSecurityDescriptor As Long
        bInheritHandle As Long
    End Type
    Public Declare Function CreateDirectory Lib "kernel32" Alias "CreateDirectoryA" (ByVal lpPathName As String, lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long
    Public Sub CreateNewDirectory(NewDirectory As String)
        Dim sDirTest As String
        Dim SecAttrib As SECURITY_ATTRIBUTES
        Dim bSuccess As Boolean
        Dim sPath As String
        Dim iCounter As Integer
        Dim sTempDir As String
        iFlag = 0
        sPath = NewDirectory
        If Right(sPath, Len(sPath)) <> "\" Then
            sPath = sPath & "\"
        End If
        iCounter = 1
        '循环逐级建立目录。
        Do Until InStr(iCounter, sPath, "\") = 0
            '提取目录结构。
            iCounter = InStr(iCounter, sPath, "\")
            sTempDir = Left(sPath, iCounter)
            sDirTest = Dir(sTempDir)
            iCounter = iCounter + 1
            '创建目录。
            SecAttrib.lpSecurityDescriptor = &O0
            SecAttrib.bInheritHandle = False
            SecAttrib.nLength = Len(SecAttrib)
            bSuccess = CreateDirectory(sTempDir, SecAttrib)
        LoopEnd Sub
    Private Sub Command1_Click()
        Call CreateNewDirectory("c:\test1\Test")
    End Sub