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

Semble pour obtenir un chemin pas trouvé si juste avant que je neVB6 Ouvrir un fichier Pour Append problème Chemin non trouvé

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

Il fournit le bon répertoire/nom de fichier que je veux

et si je remplace cette chaîne par le chemin direct entre guillemets cela fonctionne bien mais ce ne sera pas très bon pour les autres utilisateurs de mon application :(Quelqu'un sait pourquoi cela ne fonctionne pas?

+1

Pourquoi ce fait un wiki communautaire? –

+0

@Mitch Wheat, Il voulait savoir ce qui est wiki de la communauté, et a insisté dessus;) – Searush

Répondre

2

Vous pouvez ouvrir un fichier ré n'existe pas. Je l'ai essayé avec:

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

Quand il a couru créé c: \ temp \ test.txt 0

Notez que j'ai ajouté "En tant que # 1" à l'instruction Open, et taht Str (0) ajoute un espace de début pour le signe moins facultatif (CStr (0) n'inclut pas d'espace principal)

2

Commentaire: Vous pouvez ouvrir un fichier qui n'existe pas.

Uniquement vrai si votre dossier existe. Si votre dossier et votre fichier n'existent pas, l'erreur "path not found" s'affiche.

0

Voici quelque chose de facile je fait pour vous:

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 

Utilisation:

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

doesnt ce malade ajouter cause donnée fileExtention "txt" .. de toute façon