'método que cuenta los archivos de TEMP después del borrado 'estos archivos son los que no han podido ser borrados porque están en uso Protected Sub listadoPost() Try 'variables para guardar el nº de archivos 'iCuentaTempPost = nº de archivos en la raíz de TEMP 'iCuentaSubdirPost = nº de carpetas en la raíz de TEMP 'iCuentaSubdirFilesPost = nº de archivos en las carpetas de la raíz de TEMP Dim iCuentaTempPost, iCuentaSubdirPost, iCuentaSubdirFilesPost As Integer 'la clase DirectoryInfo expone métodos de instancia para crear, mover y 'enumerar archivos en directorios y subdirectorios 'se utiliza para operaciones típicas como copiar, mover, cambiar de nombre, 'crear y eliminar directorios Dim dirTemp As New DirectoryInfo(rutaTemp) 'comprobar si el directorio existe If dirTemp.Exists = True Then 'contar los archivos de la raíz de TEMP (no en subdirectorios), iCuentaTempPost = dirTemp.GetFiles.Length ' 'ahora no hace falta contar los archivos de las subcarpetas pues el método 'dirTemp.Delete(True) las ha eliminado 'contar todos los subdirectorios de TEMP 'Dim dirSub As FileSystemInfo() = dirTemp.GetDirectories() 'iCuentaSubdirPost = dirSub.Length 'contar todos los archivos de cada subdirectorio (sólo en el primer nivel de subdirectorios) 'Dim dirTemp2 As New DirectoryInfo(rutaTemp) 'For Each dirTemp2 In dirSub ' iCuentaSubdirFilesPost += dirTemp2.GetFileSystemInfos.Length 'Next ' 'nº de archivos borrados hasta la fecha + nº de archivos borrados en la ejecución actual lCuentaBorrados = lCuentaBorrados + (iCuentaTempAll - iCuentaTempPost) ' 'escribir el nº de archivos en un archivo de texto guardado en %WINDIR% 'el archivo se llama C:\Windows\Borrar_TEMP.txt (siendo %WINDIR% = C:\Windows en este caso) 'las clases Stream.Reader y Stream.Writer permiten tratar con archivos de texto secuenciales Dim swEscritor As StreamWriter 'variable para la primera línea del archivo de texto Dim sLinea As String ' StreamWriter recibe 3 parámetros: '- String con la ruta al archivo '- True para añadir texto al existente, False para sobreescribir el texto existente '- codificación de caracteres que se utilizará (default: página de códigos ANSI usada por el sistema) swEscritor = New StreamWriter(rutaTxt, False, Encoding.Default) sLinea = CStr(lCuentaBorrados) 'escribir el valor de lCuentaBorrados en la primera línea swEscritor.WriteLine(sLinea) 'cerrar el archivo swEscritor.Close() ' 'mostrar información en la etiqueta de texto 'variable iCuentaTempAll --> total de archivos encontrados antes de borrar TEMP 'restándole los archivos no borrados por estar en uso --> archivos borrados realmente Me.Label2.Text = (iCuentaTempAll - iCuentaTempPost).ToString 'variable lCuentaBorrados --> nº de archivos borrados hasta la fecha + nº de archivos borrados en la ejecución actual If lCuentaBorrados = 0 Then Me.Label3.Text = "Ningún archivo" Else Me.Label3.Text = lCuentaBorrados.ToString("#,#") & " archivos" End If Else 'crear el directorio temporal en caso de que no exista 'algunos programas arrancan con errores si no detectan la presencia del directorio definido en TEMP 'por ejemplo: Visual Studio da error de compilador, Media Player no inicia correctamente... dirTemp.Create() Me.Label1.Text = "0" Me.Label2.Text = "0" End If 'capturar excepciones Catch pollo As Exception MessageBox.Show("AVISO: " & pollo.Message, "Aviso del programa", MessageBoxButtons.OK) Application.Exit() End Try End Sub