'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