Come spostare un file nel cestino utilizzando il .Net Framework e Visual c#

Nello sviluppo di un’applicazione può tornare molto utile la possibilità di spostare un file nel cestino anzichè eliminarlo definitivamente.

Nell’esempio che segue viene illustrato come fate tutto ciò utilizzando le API di Windows ed in particolare la funzione SHFileoperation della dll shell32.
Per prima cosa inseriamo lo spazio dei nomi per la gestione delle API di windows :

using System.Runtime.InteropServices;

Ora occorre creare una Struct che avrà il compito di contenere le informazioni del file da cancellare(nome, operazione, ecc.) :

private struct SHFILEOPSTRUCT
{
     public int hwnd;
     public int wFunc;
     public string pFrom;
     public string pTo;
     public short fFlags;
     public bool fAnyOperationsAborted;
     public int hNameMappings;
     public string lpszProgressTitle;
 }

A questo punto dobbiamo scrivere la dichiarazione delle api e di alcune costanti che ci permetteranno di eliminare il file :

[DllImport("shell32.dll")]
private static extern int SHFileOperation(ref SHFILEOPSTRUCT lpFileOp);
private const short FO_DELETE = 3;
private const short FOF_ALLOWUNDO = 64;
private const short FOF_CONFIRMMOUSE = 2;
private const short FOF_NOCONFIRMATION = 16;

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...