Visual Basic - API para eliminar carpetas y archivos

Life is soft - evento anual de software empresarial
 
Vista:

API para eliminar carpetas y archivos

Publicado por FerScrich (20 intervenciones) el 25/03/2009 15:39:39
BUenas... alguien puede facilitarme algun ejemplo con API para eliminar carpetas y archivos.

Lo he intentado con RMDIR pero no te la elimina sino esta vacia y claro dentro hay mas carpetas asi que tendria que ir eliminando archivos por carpeta a carpeta y luego eliminar carpetas. Y todo esto son carpetas que no siempre son las mismas,

Asi que habia pensado dar opcion a elejir una carpeta y con la API que elimine todo lo que hay dentro.

Gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:API para eliminar carpetas y archivos

Publicado por P3L30N2009 (699 intervenciones) el 25/03/2009 18:27:14
Hace un par de dias te puse un ejemplo de como copiar carpetas y archivos, pues es lo mismo pero cambiando la constante FO_COPY por FO_DELETE
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:API para eliminar carpetas y archivos

Publicado por FerScrich (20 intervenciones) el 25/03/2009 19:31:51
ahh..perfecto,

Es esta Private Const FO_COPY = &H2

el valor H2 es lo mismo ?

Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:API para eliminar carpetas y archivos

Publicado por FerScrich (20 intervenciones) el 25/03/2009 19:41:55
No me funciona... hace como copiar. ´

esto es lo que he puesto:

Option Explicit

Private Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long
Private Type SHFILEOPSTRUCT
hWnd As Long
wFunc As Long
pFrom As String
pTo As String
fFlags As Integer
End Type

Private Const FO_COPY = &H2 'Copiar Carpetas y archivos
Private Const FO_DELETE = &H2 'Eliminat Carpetas y Archivos
Private Const FOF_NOCONFIRMMKDIR = &H200&

Private Sub Command1_Click()
CopiarCarpetasyArchivos "g:*.*", "C:Backup"
End Sub

Private Sub Command2_Click()
EliminarCarpetasyArchivos "g:*.*", ""
End Sub

Sub CopiarCarpetasyArchivos(ByVal sFuente As String, ByVal sDestino As String)
Dim SFHOp As SHFILEOPSTRUCT
With SFHOp
.hWnd = 0
.wFunc = FO_COPY 'Copiar Carpetas y Archivos
.pFrom = sFuente & vbNullChar & vbNullChar
.pTo = sDestino & vbNullChar & vbNullChar
.fFlags = FOF_NOCONFIRMMKDIR
End With
SHFileOperation SFHOp
End Sub

Sub EliminarCarpetasyArchivos(ByVal sFuente As String, ByVal sDestino As String)
Dim SFHOp As SHFILEOPSTRUCT
With SFHOp
.hWnd = 0
.wFunc = FO_DELETE ' Eliminar Carpetas y archivos
.pFrom = sFuente & vbNullChar & vbNullChar
.pTo = sDestino & vbNullChar & vbNullChar
.fFlags = FOF_NOCONFIRMMKDIR
End With
SHFileOperation SFHOp
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:API para eliminar carpetas y archivos

Publicado por P3L30N2009 (699 intervenciones) el 25/03/2009 21:24:08
NO!
el valor de la constante FO_DELETE es &H3
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:API para eliminar carpetas y archivos

Publicado por FerScrich (20 intervenciones) el 25/03/2009 22:09:32
Muchas gracias ahora si funciona
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:API para eliminar carpetas y archivos

Publicado por FerScrich (20 intervenciones) el 01/04/2009 00:40:50
Hola de nuevo

Estoy liado con lo de eliminar carpeta y he podido comprobar se solo elimina los archivos pero no quita la carpeta.

la llamo asi a la api:



EliminarCarpetasyArchivos Path & "*.*", ""

----------

Sub EliminarCarpetasyArchivos(ByVal sFuente As String, ByVal sDestino As String)
' Rutina Api para Eliminar Carpetas y Archivos

Dim SFHOp As SHFILEOPSTRUCT
With SFHOp
.hwnd = 0
.wFunc = FO_DELETE ' Eliminar Carpetas y archivos
.pFrom = sFuente & vbNullChar & vbNullChar
.pTo = sDestino & vbNullChar & vbNullChar
.fFlags = FOF_NOCONFIRMMKDIR
End With
SHFileOperation SFHOp
End Sub
-------------

Que puedo hacer para que tambien me elimine la carpeta. Path es la carpeta.

Gracias de antemano
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

para eliminar carpetas y archivos

Publicado por SirDanny (1 intervención) el 21/05/2009 17:00:42
Saludos no se si ya sea tarde pero esta funcion talvez te pueda servie pues elimina completa y definitivamente la carpeta y todo su contenido seleccionado
espero te pueda servir

simplemente al evento click mandas llamar la funcion y seleccionas la ruta de la carpeta a eliminar


Private Sub SimpleButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SimpleButton1.Click

PrvDeleteC()
End Sub



Private Sub PrvDeleteC()
Dim LoCuadro As New FolderBrowserDialog
LoCuadro.Description = "Seleccione un Directorio."
LoCuadro.ShowNewFolderButton = False
If LoCuadro.ShowDialog = Windows.Forms.DialogResult.OK Then
Dim directorio As New DirectoryInfo(LoCuadro.SelectedPath)
If MsgBox("Seguro de eliminar " & vbCrLf & directorio.Name & vbCrLf & "y todo su contenido.", MsgBoxStyle.Question & MsgBoxStyle.YesNo, "Confirmacion") = MsgBoxResult.Yes Then
Try
directorio.Delete(True) 'CUANDO ESTA EN TRUE BORRA RECURSIVO
MsgBox("Archivo eliminado con exito.", MsgBoxStyle.Information)
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Information, "Error al borrar.")
End Try
End If
End If
End Sub


saludos
SirDanny
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar