Como elimino ARchivos en Visual Basic
Quisiera un ejemplo donde elimine archivos pero identificando si la carpeta esta VACIA que no borre, y ademas poder borrar subcarpetas de una Carpeta
Agradecere su ayuda
Agradecere su ayuda
ikki, una forma de eliminar ficheros es con la instrucción «Kill», con la que puedes utilizar comodines '*' y '?' aunque tiene sus inconvenientes, por ejemplo puedes hacer (Kill "c:*.txt" pero no Kill "c:*.*") tampoco borra ficheros con los atributos SóloLectura o Oculto:
Kill RutaFichero
Una mejor alternativa es con un objeto del sistema de ficheros. Para usarlo activa su referencia desde el menú Proyecto > Referencias > Microsoft Scripting Runtime
El siguiente ejemplo elimina una carpeta y todo su contenido, recibida como parámetro:
Private Sub EliminarCarpeta(ByVal RutaCarpeta As String)
Dim Fs As FileSystemObject
If Dir(RutaCarpeta) = vbNullString Then Exit Sub 'Si no existe o está vacío salimos
Set Fs = New FileSystemObject
Fs.DeleteFolder Ruta, True
Set Fs = Nothing
End Sub
Si quieres eliminar sólo el contenido de la carpeta, pero no la carpeta, podrías modificar el código anterior. El siguiente código elimina todas las carpetas y ficheros contenidas en la ruta pasada como parámetro, ignorando los atributos:
Private Sub EliminarContenidoCarpeta(ByVal RutaCarpeta As String)
Dim Fs As FileSystemObject
Dim Carpeta As Folder, SubCarpeta As Folder
Dim Fichero As File
If Dir(RutaCarpeta) = vbNullString Then Exit Sub 'Si no existe o está vacío salimos
Set Fs = New FileSystemObject
Set Carpeta = Fs.GetFolder(RutaCarpeta)
For Each SubCarpeta In Carpeta.SubFolders
SubCarpeta.Delete True
Next
For Each Fichero In Carpeta.Files
Fichero.Delete True
Next
Set Carpeta = Nothing
Set Fs = Nothing
End Sub
Recuerda que nunca podrás eliminar nada que esté actualmente en uso.
Consulta en la ayuda los métodos y propiedades del objeto FileSystemObject.
__
Un saludo.
-----------------------------------------------------------------
Id visitando los nuevos foros de Almustafa!!! ;-)
http://www.multiingenieria.com/robotica/Foro/
Kill RutaFichero
Una mejor alternativa es con un objeto del sistema de ficheros. Para usarlo activa su referencia desde el menú Proyecto > Referencias > Microsoft Scripting Runtime
El siguiente ejemplo elimina una carpeta y todo su contenido, recibida como parámetro:
Private Sub EliminarCarpeta(ByVal RutaCarpeta As String)
Dim Fs As FileSystemObject
If Dir(RutaCarpeta) = vbNullString Then Exit Sub 'Si no existe o está vacío salimos
Set Fs = New FileSystemObject
Fs.DeleteFolder Ruta, True
Set Fs = Nothing
End Sub
Si quieres eliminar sólo el contenido de la carpeta, pero no la carpeta, podrías modificar el código anterior. El siguiente código elimina todas las carpetas y ficheros contenidas en la ruta pasada como parámetro, ignorando los atributos:
Private Sub EliminarContenidoCarpeta(ByVal RutaCarpeta As String)
Dim Fs As FileSystemObject
Dim Carpeta As Folder, SubCarpeta As Folder
Dim Fichero As File
If Dir(RutaCarpeta) = vbNullString Then Exit Sub 'Si no existe o está vacío salimos
Set Fs = New FileSystemObject
Set Carpeta = Fs.GetFolder(RutaCarpeta)
For Each SubCarpeta In Carpeta.SubFolders
SubCarpeta.Delete True
Next
For Each Fichero In Carpeta.Files
Fichero.Delete True
Next
Set Carpeta = Nothing
Set Fs = Nothing
End Sub
Recuerda que nunca podrás eliminar nada que esté actualmente en uso.
Consulta en la ayuda los métodos y propiedades del objeto FileSystemObject.
__
Un saludo.
-----------------------------------------------------------------
Id visitando los nuevos foros de Almustafa!!! ;-)
http://www.multiingenieria.com/robotica/Foro/