vb6 Open File For Append issue Path Not Found

我怕爱的太早我们不能终老 提交于 2019-12-10 20:07:34

问题


Open  App.Path & "\Folder\" & str(0) For Output

Seems to get a path not found however if directly before that I do

MsgBox App.Path & "\Folder\" & str(0)

It Provides the correct directory/filename that I want

and if I replace that string with the direct path in quotes it works fine however that won't be very good for other users of my app :( Anyone know why this doesn't work?


回答1:


You can open a file that doesn't exist. I tried it with:

  Open "c:\temp\test.txt" & Str(0) For Output As #1
  Close #1

When it ran it created c:\temp\test.txt 0

Note that I added "As #1" to the Open statement, and taht Str(0) adds a leading space for the optional minus sign (CStr(0) doens't add a leading space)




回答2:


Comment: You can open a file that doesn't exist.

Only true if your folder exist. If both your folder and file does not exist, it will give a "path not found" error.




回答3:


Here something easy i made for you:

Function CreateLog(Destination As String, MyMessage As String)
    Dim PathToCreate, FolderPath, FileName As String

    'Check for Unnecessary Spaces
    Destination = Trim(Destination)
    FolderStr = Destination

    'Gather only FolderPath of Destination
    Do
        FolderStr = Mid(FolderStr, 1, Len(FolderStr) - 1)
    Loop Until Right(FolderStr, 1) = "\" Or Len(FolderStr) < 1

    'Gather only FileName
    FileName = Mid(Destination, Len(FolderStr) + 1, Len(Destination) - Len(FolderStr))

    'If the path does not exist than create it
    'Recursive approach
    For Each Folder In Split(FolderStr, "\")
        If InStr(1, Folder, ":") = 0 Then
            PathToCreate = PathToCreate & "\" & Folder
        Else
            PathToCreate = Folder
        End If
        If fso.FolderExists(PathToCreate) = False And PathToCreate <> "" Then
            fso.CreateFolder PathToCreate
        End If
    Next

    'Open file and add the message in it
    Open PathToCreate & "\" & FileName & ".txt" For Append As #1
    Print #1, MyMessage
    Close #1

End Function

Usage:

CreateLog "D:\Test\NewTest\NewFolder\AnotherFolder\atlastthefile.abcdefg", "Hello!"

Doesnt matter what fileExtention given cause ill add ".txt" anyways..



来源:https://stackoverflow.com/questions/293368/vb6-open-file-for-append-issue-path-not-found

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!