La Web del Programador: Comunidad de Programadores
 
    Pregunta:  556 - CÓMO ENVIAR A LA PAPELERA EN VEZ DE USAR KILL
Autor:  Marceliano
supongo que existirá alguna función de API que permita borrar un fichero al estilo Win95, es decir, enviándolo a la papelera primero. La instrucción KILL lo borra de modo permanente.
Muchas gracias

  Respuesta:  Keylor
para esto podrias copiar el archivo antes de borrarlo "Kill", a la dirección C:\RECYCLED que es la direccion donde siempre esta el basurero de windows.
Realmente esto no es un basurero no que es es un directorio más. Explorer lo que hace es mover el archivo a este directorio.

  Respuesta:  Vicente Serrano
Realiza una copia a la "papelera" y luego Borra.
De momento te funciona...

  Respuesta:  Rodrigo Reviño
esta es la api para mover un archivo [ creo : ) ]
Declare Function MoveFile Lib "núcleo32" Alias "MoveFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String) As Long
(todo en una linea)
solo tienes que moverla al directorio c:\recycled y listo

  Respuesta:  Ricardo M.
Borrar un fichero y enviarlo a la papelera de reciclaje:

Crear un formulario y escribir el siguiente código:

Private Type SHFILEOPSTRUCT
hWnd As Long
wFunc As Long
pFrom As String
pTo As String
fFlags As Integer
fAnyOperationsAborted As Boolean
hNameMappings As Long
lpszProgressTitle As String
End Type

Private Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long

Private Const FO_DELETE = &H3
Private Const FOF_ALLOWUNDO = &H40

Public Sub PapeleraDeReciclaje(ByVal Fichero As String)
Dim SHFileOp As SHFILEOPSTRUCT
Dim RetVal As Long
With SHFileOp
.wFunc = FO_DELETE
.pFrom = Fichero
.fFlags = FOF_ALLOWUNDO
End With
RetVal = SHFileOperation(SHFileOp)
End Sub

Private Sub Form_Load()
PapeleraDeReciclaje "c:\a.txt"
End Sub

El programa preguntará si deseamos o no eliminar el fichero y enviarlo a la papelera de reciclaje. El parámetro .fFlags nos permitirá recuperar el fichero de la papelera si lo deseamos. Si eliminamos esta línea, el fichero no podrá ser recuperado.