2010-02-11 5 views
14

J'ai une question très rapide. Mon programme télécharge 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?Supprimer des dossiers et des fichiers contenant

Répondre

35

Si tous vos dossiers sont contenus dans un seul dossier, il devrait être assez simple. Cela va supprimer votre répertoire racine, ainsi que tous les répertoires et fichiers qui se trouvent en-dessous de celui-ci. Vous pouvez simplement appeler cela plusieurs fois si vos fichiers et répertoires ne se trouvent pas tous dans un répertoire racine unique comme "YOURPATH" dans l'exemple. Cela vous évitera d'avoir à supprimer chaque fichier individuellement.

+4

+1 - Ne jamais avoir supprimé un répertoire, je ne pensais pas à regarder dans l'objet Directory pour une méthode Delete. Cette réponse est meilleure que la mienne. –

3

L'unité .NET IO a un deux commandes qui devrait vous permettre de faire l'affaire:

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

Je voudrais écrire une méthode qui prend le nom d'un répertoire et utilise la routine « GetFiles » pour obtenir tous des fichiers et de les supprimer en utilisant 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, donc vous n'avez pas besoin de passer par les boucles dont je parle ici. Sa réponse est la bonne et devrait être votée. Mine, à ce stade, est plus d'une curiosité (bien que je remercie la personne qui m'a donné un upvote; 0).

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

en ajoutant un peu de description rendra vos réponses plus goûteuses –

-1

Votre recherchent DirectoryInfo, l'utiliser comme ceci:

Dim di As New IO.DirectoryInfo(path) 
di.Delete(True) 
Questions connexes