2010-02-11 29 views
14

Tengo una pregunta realmente rápida. Mi programa en realidad descarga un archivo zip y luego lo extrae en su escritorio. Pero necesito una característica de desinstalación, que básicamente consiste en eliminar varias carpetas y contener archivos. ¿Cómo puedo hacer esto en vb.net?Eliminar carpetas y contener archivos

Respuesta

35

Si todas sus carpetas están en una sola carpeta, debería ser bastante sencillo.

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

Eso eliminará su directorio raíz, y todos los directorios y archivos debajo de él. Puede llamar a esto varias veces si sus archivos y directorios no están todos en un solo directorio raíz como "YOURPATH" en el ejemplo. Esto le evitará tener que eliminar cada archivo individualmente.

+4

+1 - Nunca haber eliminado un directorio, no pensé que de mirar en el objeto de directorio para un método Delete. Esta respuesta es mejor que la mía. –

3

unidad de .NET IO tiene unos dos comandos que le debe permitir hacer el truco:

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

que iba a escribir un método que toma el nombre de un directorio y utiliza las "GetFiles" rutina para obtener toda de los archivos y eliminarlos utilizando System.IO.File.Delete (ruta) en un bucle foreach. A continuación, ejecute un ciclo foreach sobre el resultado del comando GetDirectories() que llama a la función recursivamente.

Actualización: Steve Danner señala que el espacio de nombres System.IO.Directory tiene un método Delete, por lo que no necesita pasar por los loops de los que hablo aquí. Su respuesta es la correcta y debería ser votada. El mío, en este punto, es más una curiosidad (aunque gracias a la persona que me dio un voto positivo; 0).

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

agregar un poco de descripción hará que sus respuestas sean más agradables –

-1

Su están buscando DirectoryInfo, utilizar de esta manera:

Dim di As New IO.DirectoryInfo(path) 
di.Delete(True) 
Cuestiones relacionadas