| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
conejin Cdt

Registrado: 24 Sep 2007Mensajes: 4
|
Publicado: Vie 18 Abr, 2008 6:01 pm Asunto: Envio a Papelera en WindowsXP |
|
|
Hola
Estoy borrando archivos y enviandolos a la papelera de reciclaje, esto lo hace sin problema. El detalle es que cuando sale el cuadro de dialogo donde se pregunta si se envia o no, la variable :
fAnyOperationsAborted
la cual se supone deberia cambiar su valor en caso de decir NO, no cambia su valor.
He probado el Programa en windows98, windows2000 y windowsXP. En los dos primeros cambia el valor al decir que NO. pero en WindowsXP no.
El codigo que estoy utilizando es :
#include <shellapi>
SHFILEOPSTRUCT op;
//Verifica si existe o no el archivo a Borrar
if (!FileExists(datos)){
ShowMessage("No Existe Archivo");
return;
}
memset(&op,0,sizeof(op));
//Borrado del Archivo
op.hwnd=Handle;
op.wFunc=FO_DELETE;
op.pFrom=datos;
op.fFlags=FOF_ALLOWUNDO;
int k;
k=SHFileOperation(&op);
ShowMessage(k);
ShowMessage(op.fAnyOperationsAborted);
if (op.fAnyOperationsAborted){
ShowMessage("No se borro el Archivo");
return;
}
que lo obtuve del foro.
Existe algo que agregar cuando se trabaja en XP. Estoy trabajando con Builder C++ 6 Enterprise, o es necesario agregar algun parche.
De antemano gracias. |
|
| Volver arriba |
|
 |
Tugui Master


Registrado: 09 Nov 2002Mensajes: 663
|
Publicado: Vie 18 Abr, 2008 6:39 pm Asunto: |
|
|
Hola que tal, no te serviría DeleteFile?
| Código: |
void __fastcall TForm1::Button1Click(TObject *Sender)
{
OpenDialog1->Title = "Delete File";
if (OpenDialog1->Execute())
{
if (FileExists(OpenDialog1->FileName))
DeleteFile(OpenDialog1->FileName);
}
}
|
_________________ ¡ADELANTE CON ESTE SUPER FORO! |
|
| Volver arriba |
|
 |
conejin Cdt

Registrado: 24 Sep 2007Mensajes: 4
|
Publicado: Lun 21 Abr, 2008 4:24 pm Asunto: |
|
|
Primero que nada gracias por responder.
Pero en este caso no me sirve el delete, por que se decea enviar el archivo a la papelera.
Lo que estoy haciendo es preguntado despues de borrar si el archivo existe, si existe significa que no lo envio a la papelera. Pero se supone que uno de los flag deberia de indicarlo... |
|
| Volver arriba |
|
 |
juanma Cmdr

Registrado: 17 Nov 2005Mensajes: 127Ubicación: Almeria - España
|
Publicado: Mar 22 Abr, 2008 11:08 am Asunto: |
|
|
Prueba con
| Código: | op.pFrom=datos.c_str();
|
|
|
| Volver arriba |
|
 |
|