Je me demandais si quelqu'un pouvait m'aider avec une fonction vb6 qui supprimerait tous les fichiers dans un répertoire (à l'exclusion des sous-répertoires).Supprimer tous les fichiers dans un répertoire vb6
Répondre
Une ligne, en utilisant l'instruction VB6 Kill
Kill "c:\doomed_dir\*.*"
Le help topic says « Dans Microsoft Windows, kills prend en charge l'utilisation de plusieurs caractères (*) et un seul caractère wildcards (?) Pour spécifier plusieurs fichiers ". En aparté - je préfère éviter le Microsoft Scripting Runtime (y compris FileSystemObject). Dans mon expérience, il est parfois cassé sur les machines des utilisateurs, peut-être parce que leur département informatique est paranoïaque sur les virus.
Je crois que cela devrait fonctionner:
Dim oFs As New FileSystemObject
Dim oFolder As Folder
Dim oFile As File
If oFs.FolderExists(FolderSpec) Then
Set oFolder = oFs.GetFolder(FolderSpec)
'caution!
On Error Resume Next
For Each oFile In oFolder.Files
oFile.Delete True 'setting force to true will delete a read-only file
Next
DeleteAllFiles = oFolder.Files.Count = 0
End If
End Function
Je reçois une erreur "Type défini par l'utilisateur non défini" dans "Dim oFs comme nouveau FileSystemObject" – zSynopsis
C'est parce que vous devrez ajouter la référence à FileSystemObject pour l'utiliser .. Je ne me souviens pas de quoi le nom de référence exact est bien. – Corazu
"Pour utiliser FileSystemObject, vous devez sélectionner le Microsoft Scripting Runtime dans la boîte de dialogue Références du projet pour votre projet." D'après: http://support.microsoft.com/kb/186118 – Alex
Je ne l'ai pas testé tous les scénarios, mais il devrait fonctionner. Il devrait supprimer chaque fichier et si le fichier est verrouillé ou que vous n'avez pas accès, vous devriez obtenir Erreur 70 qui est interceptée et vous obtenez une boîte Abort, Retry ou Ignore.
Sub DeleteAllFilesInDir(ByVal pathName As String)
On Error GoTo errorHandler
Dim fileName As String
If Len(pathName) > 0 Then
If Right(pathName, 1) <> "\" Then pathName = pathName & "\"
End If
fileName = Dir(pathName & "*")
While Len(fileName) > 0
Kill pathName & fileName
fileName = Dir()
Wend
Exit Sub
errorHandler:
If Err.Number = 70 Then
Select Case MsgBox("Could not delete " & fileName & ". Permission denied. File may be open by another user or otherwise locked.", vbAbortRetryIgnore, "Unable to Delete File")
Case vbAbort:
Exit Sub
Case vbIgnore:
Resume Next
Case vbRetry:
Resume
End Select
Else
MsgBox "Error deleting file " & fileName & ".", vbOKOnly Or vbCritical, "Error Deleting File"
End If
End Sub
+1 de sympathie car je ne pense pas que cela méritait -1. Bien que "Kill" & pathname & "\ *. *" Soit nettement plus court. – MarkJ
Il semblerait que le moteur d'exécution de script méthode DeleteFile de FileSystemObject prend également en charge les caractères génériques que cela fonctionne pour moi:
Dim fs As New Scripting.FileSystemObject
fs.Deletefile "C:\Temp\*.jpg", true
Cette approche a moins de contrôle que l'approche proposée par @Corazu, mais peut avoir une certaine utilité dans certains cas.
- 1. Obtenir une liste de tous les fichiers dans un répertoire
- 2. source tous les fichiers dans un répertoire de .bash_profile
- 3. Comment déplacer tous les fichiers mp3 dans un seul répertoire?
- 4. Supprimer tous les fichiers de svn repository
- 5. Comment supprimer tous les fichiers sous un répertoire spécifié avec PHP?
- 6. LINUX: Lien tous les fichiers d'un répertoire à un autre
- 7. Commande pour compresser tous les fichiers/dossiers sous un répertoire
- 8. Comment puis-je obtenir la liste de tous les noms de fichiers dans un répertoire à l'aide de VB6?
- 9. Comment extraire tous les fichiers de projet VB6 de VSS?
- 10. Comment supprimer tous les sujets dans ActiveMQ?
- 11. Cron Job - Commande pour supprimer tous les fichiers .flv tous les jours
- 12. Comment inclure tous les fichiers d'un répertoire avec cmake?
- 13. Comment puis-je ajouter un préfixe à tous les noms de fichiers dans un répertoire?
- 14. BASH copier tous les fichiers sauf un
- 15. Comment obtenir tous les fichiers dans un répertoire avec certaine extension en C#?
- 16. Comment obtenir des fichiers dans un répertoire, y compris tous les sous-répertoires
- 17. Trouver tous les fichiers dans un répertoire qui ne sont pas eux-mêmes des répertoires
- 18. scripts Windows pour commande pour renommer tous les fichiers dans un répertoire
- 19. Comment puis-je lister tous les fichiers tga dans un répertoire (non récursif) en Python?
- 20. Comment faire quelque chose à tous les fichiers dans un répertoire en utilisant bash?
- 21. Comment puis-je appliquer tous les fichiers sql dans un répertoire?
- 22. comment supprimer les fichiers et le répertoire dans un chemin désigné?
- 23. Pré-envoyer un fichier à tous les fichiers .cs dans le répertoire et le sous-répertoire à l'aide de PowerShell
- 24. Saisir tous les 4 fichiers
- 25. Comment supprimer des fichiers qui correspondent au motif dans un répertoire
- 26. Existe-t-il un moyen d'obtenir tous les répertoires mais pas les fichiers dans un répertoire en Python?
- 27. dossier inconnu supprimer dans un répertoire à l'aide des fichiers .BAT
- 28. Dans .Net, quel est le moyen le plus rapide pour trouver récursivement tous les fichiers d'un répertoire racine?
- 29. Supprimer les anciens fichiers de sauvegarde
- 30. Suppression de tous les fichiers d'un répertoire sur une taille de fichier donné chaque
J'ai toujours l'air de trop compliquer les choses .. J'aurais dû m'en souvenir. – Corazu
Dans Access 2000, l'utilisation du caractère générique '' *. * "' Avec la commande Kill échouera si un seul fichier de ce répertoire est verrouillé (ou ouvert). – Spidermain50