como borro un directorio con todo su contenido

Iniciado por Mr pom0, 4 Octubre 2007, 21:03 PM

0 Miembros y 1 Visitante están viendo este tema.

Mr pom0

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

nhaalclkiemr

Código (vb) [Seleccionar]
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 ;)
StasFodidoCrypter 1.0 - 100% (old)
StasFodidoCrypter 2.0 - 85% (deserted)
Fire AV/FW-Killer - 97% (deserted)
R-WlanXDecrypter 1.0- 100%

zXxOsirisxXz

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

Spider-Net

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.

zXxOsirisxXz

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

Mr pom0

Muchas gracias esta muy bueno y fi funciona solo lo cambie un poco para que no este todo en el form muchas gracias