web-dev-qa-db-fra.com

Supprimer des dossiers et contenir des fichiers

J'ai une très brève question. Mon programme télécharge en fait un fichier Zip puis l’extrait sur son bureau. Mais j’ai besoin d’une fonction de désinstallation, qui consiste essentiellement à supprimer plusieurs dossiers et à contenir des fichiers. Comment puis-je faire cela sur vb.net?

16
lab12

Si tous vos dossiers sont contenus dans un seul dossier, cela devrait être assez simple.

Dim path As String = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) & "\YOURPATH"
System.IO.Directory.Delete(path, True)

Cela supprimera votre répertoire racine, ainsi que tous les répertoires et fichiers situés en dessous. Vous pouvez simplement appeler plusieurs fois si vos fichiers et vos répertoires ne sont pas tous dans un répertoire racine unique comme "YOURPATH" dans l'exemple. Cela vous évitera d'avoir à supprimer chaque fichier individuellement.

36
Steve Danner

L'unité .NET IO a deux commandes qui devraient vous permettre de faire le tour:

System.IO.Directory.GetDirectories("C:\\Program Files\\Your Directory\\*.*");
System.IO.Directory.GetFiles("C:\\Program Files\\Your Directory\\*.*");

J'écrirais une méthode qui prend le nom d'un répertoire et utilise la routine "GetFiles" pour obtenir tous les fichiers et les supprimer à l'aide de System.IO.File.Delete (chemin) dans une boucle foreach. Ensuite, exécutez une boucle foreach sur le résultat de la commande GetDirectories () appelant la fonction de manière récursive.

Mise à jour: Steve Danner souligne que l'espace de noms System.IO.Directory a une méthode Delete, vous n'avez donc pas besoin de parcourir les boucles dont je parle ici. Sa réponse est la bonne et devrait être voté. Le mien, à ce stade, est plus une curiosité (bien que merci à la personne qui m'a donné un vote positif; 0).

3
Mark Brittingham

Vous recherchez DirectoryInfo, utilisez-le comme ceci:

Dim di As New IO.DirectoryInfo(path)
di.Delete(True)
0
MarianoC