Problème avec filesystem.deletefile
Bonjour,
Je trouve sur Internet l'exemple suivant:
Code:
My.Computer.FileSystem.DeleteFile("C:\test.txt")
et j'essaie de l'appliquer mais le système bloque sur "My" en indiquant "variable non déclarée".
J'essaie de déclarer My.Computer.FileSystem en tant qu'objet mais j'ai aussi une erreur.
Le contexte: j'ai une appli qui crée un fichier texte par Print#1 et je dois la relancer à plusieurs reprises pour la déboguer mais elle bloque avec "Permission refusée" parce que le fichier #1 existe déjà (je suppose) et je perds un temps fou à sauvegarder ce qui doit l'être, fermer les fichiers actifs et faire un redémarrage. Je voudrais ajouter une petite sub qui élimine le fichier en question (sur demande) mais c'est là que My.Compuer.Filesystem me bloque.
Merci d'avance pour toute piste.
Cordialement
touche_a_tout
[XL-2016] Problème avec filesystem.deletefile
Salut et merci,
C'est comme si je mangeais ma soupe avec un tournevis :) Voilà bientôt 20 ans que je débute !
Merci pour cette réponse ultra-rapide.
Je tâche de suivre la piste et je donne des nouvelles.
Cordialement
touche_a_tout
1 pièce(s) jointe(s)
Problème avec filesystem.deletefile
Re,
Tout baigne sauf le nom du fichier à diliter. Il n'est normalement pas en dur, mais créé par référence à une userform dont voici un extrait:
Pièce jointe 653191
Ma moulinette se présente comme suit:
Code:
1 2 3 4 5 6 7 8 9
|
Sub vidange_fichier()
Stop
Dim MyFSO As FileSystemObject
Set MyFSO = New FileSystemObject
'MyFSO.DeleteFile ("E:\3_G_E_N_E_A_L_O_G_I_E\A1_Reprise_recherches\chantier_dcd\gedcoms_corr\Gedcom_dépôt_104E")
'MyFSO.DeleteFile (Nom_Dossier & "\" & Nom_Fichier)
MyFSO.DeleteFile (Nom_Dossier & "\" & Nom_Fichier & ".ged")
End Sub |
Le nom du fichier a une extension ".ged"
Le "stop" dans le code me permet d'examiner le fichier créé (présence d'erreurs) et de le supprimer ensuite.
Dans les 2 premières variantes le message est "fichier introuvable". Dans la troisième, le point avant "ged" provoque une erreur de séparateur
Où est le souci ?
Merci d'avance.
Cordialement
touche_a_tout
[XL-2016] Problème avec filesystem.deletefile
Bonjour et merci Deedolith,
J'ai rectifié le code comme suit:
Code:
1 2 3 4 5 6 7 8
| [XL-2016]
Sub vidange_fichier()
Stop
Dim MyFSO As FileSystemObject
Set MyFSO = New FileSystemObject
MsgBox "filename = """ & (Nom_Dossier & "\" & Nom_Fichier) & ".ged"""
MyFSO.DeleteFile Nom_Dossier & "\" & Nom_Fichier & ".ged", True
End Sub |
Dans le msgbox, le filename correspond à ce qui s'affiche avec un Dir (invite de commande) donc le nom de fichier est correct.
J'obtins le message "permission refusée". Je ne comprends pas pourquoi (le fichier n'est pas protégé).
Une explication ?
Merci. Cordialement
touche_a_tout
[XL-2016] Problème avec filesystem.deletefile
Bonjour, merci Deedolith,
J'aurais dû y penser: j'ai intercalé ma sub "vidange" avant que l'appli ajoute la marque de fin de fichier, le tag TRLR, donc le fichier est encore utilisé par mon appli. J'ai une sub qui lance les sous-routines et se termine de la façon suivante:
Code:
1 2 3 4
|
vidange_fichier
Print #1, "0 TRLR"
Close #1 |
Est-ce que je peux simplement ajouter, après la ligne Close #1:
Code:
1 2 3 4 5 6 7
|
Stop
Dim MyFSO As FileSystemObject
Set MyFSO = New FileSystemObject
MyFSO.DeleteFile Nom_Dossier & "\" & Nom_Fichier & ".ged", True
'(... fin de l'appli)
End Sub |
Je ne m'y lance pas, j'ai peur de f... le bazar.
Merci pour tout conseil expérimenté
Cordialement
touche_a_tout