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

パスが見つからないようですが、その直前にパスが見つかりません

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

必要な正しいディレクトリ/ファイル名を提供します

その文字列を引用符で囲んだ直接パスに置き換えると、正常に機能しますが、アプリの他のユーザーにとってはあまり良くありません:(これが機能しない理由を知っている人はいますか?

4

3 に答える 3

2

存在しないファイルを開くことができます。私はそれを試しました:

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

実行すると、c:\ temp \test.txt0が作成されました。

Openステートメントに「As#1」を追加し、taht Str(0)がオプションのマイナス記号の先頭にスペースを追加することに注意してください(CStr(0)は先頭にスペースを追加しません)

于 2008-11-17T02:46:44.807 に答える
2

コメント: 存在しないファイルを開くことができます。

フォルダーが存在する場合にのみ当てはまります。フォルダーとファイルの両方が存在しない場合、「パスが見つかりません」というエラーが発生します。

于 2008-12-02T10:09:35.360 に答える
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!"

とにかく「.txt」を追加すると、どのfileExtentionが原因であるかは関係ありません。

于 2012-07-18T08:46:29.250 に答える