vb6 Открыть файл для добавления вопроса Путь не найден - PullRequest
3 голосов
/ 16 ноября 2008
Open  App.Path & "\Folder\" & str(0) For Output

Кажется, чтобы получить путь не найден, однако, если непосредственно перед этим я делаю

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

Предоставляет правильный каталог / имя файла, который я хочу

и если я заменю эту строку на прямой путь в кавычках, она будет работать нормально, но это не очень хорошо для других пользователей моего приложения :( Кто-нибудь знает, почему это не работает?

Ответы [ 3 ]

2 голосов
/ 02 декабря 2008

Комментарий: вы можете открыть файл, который не существует.

Только true, если ваша папка существует. Если ваша папка и файл не существуют, появится ошибка «путь не найден».

2 голосов
/ 17 ноября 2008

Вы можете открыть файл, который не существует. Я попробовал это с:

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

Когда он запустился, он создал c: \ temp \ test.txt 0

Обратите внимание, что я добавил "As # 1" в оператор Open, и taht Str (0) добавляет начальный пробел для необязательного знака минус (CStr (0) не добавляет начальный пробел)

0 голосов
/ 18 июля 2012

Вот что-то простое, что я сделал для вас:

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

Использование:

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

Неважно, какое заданное fileExtention вызывает неправильное добавление ".txt".

...