2009-04-06 24 views
11

ho bisogno di spostare un file nel cestino in .NET 2003come spostare i file nel Cestino

ho aggiunto microsft.visualbasic.runtime DLL da refrence, ma non ho potuto in grado di ottenere filesystem.deletedirectory, Quindi cosa fare ... posso aiutarmi qualcuno?

+0

Hai provato Google? http://www.google.com/search?q=C%23+delete+file+per+reciclo+bin – abatishchev

+0

Ci dovrebbe davvero essere un motivo "troppo facile da trovare su Google" per chiudere una domanda. –

+0

d'accordo, dovresti provare prima Google. O almeno segnalare ciò che hai provato? –

risposta

0

This potrebbe aiutarti. Sembra che sia necessario aggiungere un riferimento a Microsoft.VisualBasic.dll o utilizzare P/Invoke.

22

Ho trovato questo, non so se funziona, ma ne vale la pena.

using Microsoft.VisualBasic; 

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

EDIT: Wise parole da Nifle: Basta ricordarsi di aggiungere un riferimento a Microsoft.VisualBasic.dll

+0

+1 Funziona davvero. Stavo per pubblicare la stessa risposta anch'io. – Nifle

+3

Basta ricordare di aggiungere un riferimento a Microsoft.VisualBasic.dll – Nifle

+0

Punto buono - aggiungerà alla risposta. –

0

Hai un

using Microsoft.VisualBasic.FileIO; 

nella parte superiore della pagina?

3

In sostanza, tra il riferimento in alto e in realtà si chiama il metodo è necessario il nome completo (dopo aver aggiunto la biblioteca ovviamente)

È possibile sia pienamente chiamarlo:

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

O è possibile aggiungere il riferimento alla parte superiore con gli altri:

using Microsoft.VisualBasic.FileIO 

e poi

FilesSystem.DeleteDirectory(etc); 
0

Utilizzando

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

esigenze: 00:00:00.4036573 per cancellare un file. Utilizzo di

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

richiede solo: 00:00:00.1107684 per eliminare un file.

Un'implementazione può essere trovato qui: Send a File to the Recycle Bin

+0

Come hai testato il tempo? Potete fornire qualche codice di prova – xmen

+0

@ xmenW.K. Scusa, è passato molto tempo fa, ma penso di aver usato 1000 file generati e ho diviso il tempo impiegato per cancellarli per ottenere un tempo medio ;-) – jwillmer

Problemi correlati