2009-04-06 24 views
11

Necesito mover un archivo a la papelera de reciclaje en .NET 2003cómo mover archivos a la papelera de reciclaje

añadí microsft.visualbasic.runtime DLL desde refrence, pero no pude capaz de obtener filesystem.deletedirectory, Entonces, ¿qué hacer? ¿Puede alguien ayudarme?

+0

Ha intentado Google? http://www.google.com/search?q=C%23+delete+file+to+recycle+bin – abatishchev

+0

Realmente debería haber un motivo "demasiado fácil de encontrar en Google" para cerrar una pregunta. –

+0

de acuerdo, realmente debería probar Google primero. ¿O al menos informar lo que has intentado? –

Respuesta

0

This podría ayudarlo. Parece que necesita agregar una referencia a Microsoft.VisualBasic.dll o usar P/Invoke.

22

Encontré esto, no sé si funciona, pero vale la pena intentarlo.

using Microsoft.VisualBasic; 

string path = @"c:\myfile.txt"; 
FileIO.FileSystem.DeleteDirectory(path, FileIO.UIOption.OnlyErrorDialogs, RecycleOption.SendToRecycleBin); 

EDIT: Sabias palabras de Nifle: Sólo recuerde agregar una referencia a Microsoft.VisualBasic.dll

+0

+1 Esto realmente funciona. Iba a publicar la misma respuesta yo mismo. – Nifle

+3

Simplemente recuerde agregar una referencia a Microsoft.VisualBasic.dll – Nifle

+0

Buen punto: se agregará a la respuesta. –

0

¿Tiene un

using Microsoft.VisualBasic.FileIO; 

en la parte superior de la página?

3

Básicamente, entre la referencia en la parte superior y, de hecho una llamada al método necesita el nombre completo (después de la adición de la biblioteca, por supuesto)

Usted puede llamar completamente:

Microsoft.VisualBasic.FileIO.FileSystem.DeleteDirectory(
    path, 
    FileIO.UIOption.OnlyErrorDialogs, 
    RecycleOption.SendToRecycleBin); 

o puede agregar la referencia a la parte superior con los otros:

using Microsoft.VisualBasic.FileIO 

y después

FilesSystem.DeleteDirectory(etc); 
0

Usando

FileIO.FileSystem.DeleteDirectory(path, FileIO.UIOption.OnlyErrorDialogs, RecycleOption.SendToRecycleBin); 

necesidades: 00:00:00.4036573 para borrar un archivo. Con

[DllImport("shell32.dll", CharSet = CharSet.Auto)] 
private static extern int SHFileOperation(ref SHFILEOPSTRUCT FileOp); 

solo necesita: 00:00:00.1107684 para eliminar un archivo.

Una implementación pueden encontrarse aquí: Send a File to the Recycle Bin

+0

¿Cómo hiciste la prueba del tiempo? ¿Puede proporcionar algún código de prueba – xmen

+0

@ xmenW.K. Lo siento, es hace mucho tiempo, pero creo que utilicé 1000 archivos generados y dividí el tiempo que se usó para eliminarlos para obtener un tiempo promedio ;-) – jwillmer

Cuestiones relacionadas