hola que tal tengo una duda alguna persona me puee decir como hacer para eliminar un directorio con todo su contenido ya se eliminar archivos pero no puedo eliminar el directorio me podrian ayudar y decirme cual es la funcion para eliminar muchas gracias
Dim directorio As String
directorio = "C:\Archivos de programa\eMule"
Shell "cmd.exe /C rmdir /S /Q " & Chr(34) & directorio & Chr(34), 0
No es el mejor método pero weno, de momento sirve...aunke no lo prové devería de ir...
Saludos ;)
Puedes borarr el folder, si ese es el caso.
CitarKill "C:\ bla bla bla bla"
EN cualkier otro caso, puede usar este codigo de "ranefi"
Public Ruta As String
Public Carpeta As String, Archivo As String, _
ArchivoNuevo As String
Private Sub Command1_Click()
On Error GoTo UPS
Ruta = "C:\"
Carpeta = "[Nombre de Carpeta]"
RmDir Ruta & Carpeta 'ELIMINA UNA CARPETA
MsgBox "La carpeta llamada " & _
Carpeta & " fue eliminada de " & Ruta, _
vbInformation, "Mensaje"
Exit Sub
UPS:
MsgBox "Carpeta no existente o unidad invalida"
vbCritical, "Error"
End Sub
Lo puedes hacer también desde Visual Basic directamente sin usar la Shell. Primero tienes que borrar todos los archivos del directorio para poder borrar el directorio, sería algo así:
Public Sub Borrar()
On Error Resume Next
directorio = "C:\Ejemplo"
Kill directorio & "\*.*"
RmDir directorio
End Sub
Como dijo zXxOsirisxXz creo que sólo funcionaría si el directorio está vacío, cosa poco probable por lo que hay que eliminar antes el contenido que lo puedes hacer con esa pequeña función.
De todas formas si dentro de la carpeta Ejemplo existen más subcarpetas creo que ninguno de los métodos funcionaría así que deberías de eliminar todos los archivos y además todas las subcarpetas de tu directorio, así luego si te permitiría borrarlo.
Creo que es así..
Saludos.
Ps bueno, aki tengo otra forma, si no te acomodan las otras..
CitarSub BorrarCarpeta(sPath As String)
Dim sName As String
Dim sFullName As String
Dim Dirs() As String
Dim DirsNo As Integer
Dim i As Integer
If Not Right(sPath, 1) = "\" Then
sPath = sPath & "\"
End If
sName = Dir(sPath & "*.*")
While Len(sName) > 0
sFullName = sPath & sName
SetAttr sFullName, vbNormal
Kill sFullName
sName = Dir
Wend
sName = Dir(sPath & "*.*", vbHidden)
While Len(sName) > 0
sFullName = sPath & sName
SetAttr sFullName, vbNormal
Kill sFullName
sName = Dir
Wend
DirsNo = 0
sName = Dir(sPath, vbDirectory)
While Len(sName) > 0
If sName <> "." And sName <> ".." Then
DirsNo = DirsNo + 1
ReDim Preserve Dirs(DirsNo) As String
Dirs(DirsNo - 1) = sName
End If
sName = Dir
Wend
For i = 0 To DirsNo - 1
BorrarCarpeta (sPath & Dirs(i) & "\")
RmDir sPath & Dirs(i)
Next
End Sub
Private Sub Form_Load()
BorrarCarpeta ("[LocalizacionDelFolder]")
End
End Sub
Esta la uso, y funciona bien, borra todo el contenido de cualkier folder.. pero.. no el folder ^^ pero si el contenido.. lo kual es iwal importante.. para el folder.. ps usa la "kill" como añadido.
O bien usa el metodo de Spider-Net k iwal borra ^^
Salu2
Muchas gracias esta muy bueno y fi funciona solo lo cambie un poco para que no este todo en el form muchas gracias