2008-11-16 8 views
3
Open App.Path & "\Folder\" & str(0) For Output 

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

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

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

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

+1

Почему это сделано сообщество wiki? – 2008-11-16 02:36:25

ответ

2

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

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

Когда он побежал он создал C: \ Temp \ test.txt 0

Заметьте, что я добавил: "В # 1" открытого заявления и ТАГТ ул (0) добавляет ведущее место для необязательного знака минус (CStr (0) не добавляет ведущее пространство)

2

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

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

0

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

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

Doesnt того, что fileExtention учитывая причину плохого надстройку ".txt" в любом случае ..