'método que cuenta los archivos y las carpetas de TEMP antes del borrado
    Protected Sub listadoPre()
        Try
            'variables para guardar el nº de archivos
            'iCuentaTempPre = nº de archivos en la raíz de TEMP
            'iCuentaSubdirPre = nº de carpetas en la raíz de TEMP
            'iCuentaSubdirFilesPre = nº de archivos en las carpetas de la raíz de TEMP
            Dim iCuentaTempPre, iCuentaSubdirPre, iCuentaSubdirFilesPre 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)
                iCuentaTempPre = dirTemp.GetFiles.Length
                'contar todos los subdirectorios  de TEMP
                Dim dirSub As FileSystemInfo() = dirTemp.GetDirectories()
                iCuentaSubdirPre = 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
                    iCuentaSubdirFilesPre += dirTemp2.GetFileSystemInfos.Length
                Next
                'mostrar información en la etiqueta de texto
                Me.Label1.Text = (iCuentaTempPre + iCuentaSubdirFilesPre).ToString
                'valor de t = nº total de archivos encontrados antes de borrar TEMP
                iCuentaTempAll = (iCuentaTempPre + iCuentaSubdirFilesPre)
                '
                'leer el nº de archivos borrados hasta la fecha desde 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 srLector As StreamReader
                'variable para la primera línea del archivo de texto
                Dim sLinea As String
                '
                'leer la primera línea y pasarla a lCuentaBorrados
                srLector = New StreamReader(rutaTxt)
                sLinea = srLector.ReadLine
                lCuentaBorrados = CLng(sLinea)
                'cerrar el archivo
                srLector.Close()
                '
                'el método DirectoryInfo.Delete elimina una instancia de DirectoryInfo
                'especificando si se van a eliminar los subdirectorios y los archivos (True o False)
                'se asigna al directorio de archivos temporales
                dirTemp.Delete(True)
            Else
                'si no existe el directorio TEMP
                Me.Label1.Text = "0"
                Me.Label2.Text = "0"
            End If
            'capturar excepciones
        Catch pollo As Exception
            'pasar por alto la excepción si la causa es no poder borrar archivos por estar en uso (excepción System.IO.IOException)
            Dim sTipo As String
            sTipo = "System.IO.IOException"
            If Not pollo.GetType.ToString = sTipo Then
                MessageBox.Show(pollo.Message, "Aviso del programa", MessageBoxButtons.OK)
                Application.Exit()
            End If
        End Try
    End Sub