得到一个text1.text的字符串(比如:e:\abc\test\a.txt),根据这个字符串,在相应的盘创建相应的文件夹和文件。不能用api 及 fso,不知该怎么做,大家帮帮忙!

解决方案 »

  1.   

    就用DIR及MkDir就可以解决了。
      

  2.   

    啊,我记得我回复过这个问题的啊,怎么没看见我的回复?!!
    算了,再回复一次吧
    Option Explicit
    Private Declare Function CreateDirectory Lib "kernel32" Alias "CreateDirectoryA" (ByVal lpPathName As String, lpSecurityAttributes As Any) As LongPrivate Sub Command1_Click()
    CreateDir "e:\abc\test\a.txt"
    End Sub
    Private Sub CreateDir(ByVal pat As String)
    Dim st As Integer, en As Integer
    'If Right(pat, 1) <> "\" Then pat = pat & "\"
    st = 4: en = Len(pat)
    Do
        st = InStr(st, pat, "\") + 1
        If st = 1 Then Exit Do
        CreateDirectory Left(pat, st - 2), ByVal 0&
    Loop Until st > en
    End Sub
      

  3.   

    啊,错了,,,没注意看不能用API,报歉,重新写一个
    Option ExplicitPrivate Sub Command1_Click()
    CreateDir "e:\abc\test\a.txt"
    End Sub
    Private Sub CreateDir(ByVal pat As String)
    Dim st As Integer, en As Integer
    st = 4: en = Len(pat)
    Do
        st = InStr(st, pat, "\") + 1
        If st = 1 Then Exit Do
        MkDir Left(pat, st - 2)
    Loop Until st > en
    End Sub
      

  4.   

    你以前回的是用api的,你没看我的跟贴,5555
    不过清楚了,菜鸟开始都不知道有mkdir这些函数,郁闷呀,不过很谢谢楼上的了
      

  5.   

    晕,怎么又错了,是我脑袋发晕吧。。只创建了文件夹,还没有创建文件。。
    这下正确了。。
    Option ExplicitPrivate Sub Command1_Click()
    CreateDir "e:\abc\test\a.txt"
    End Sub
    Private Sub CreateDir(ByVal pat As String)
    Dim st As Integer, en As Integer, i As Integer
    st = 4: en = Len(pat)
    On Error Resume Next
    Do
        i = InStr(st, pat, "\") + 1
        If i = 1 Then
            Open pat For Random As #1
            Close 1
            Exit Do
        Else
            st = i
            MkDir Left(pat, st - 2)
        End If
    Loop Until st > en
    On Error GoTo 0
    End Sub