Ultime notizie
Home » Tips and Tricks » Come spostare un file nel cestino utilizzando il .Net Framework e Visual c#

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

In questo articolo vedremo come è possibile spostare un file nel cestino utilizzando il .Net Framework di Microsoft ed il linguaggio Visual C#(sharp).

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;

E per finire di seguito vi riporto la funzione che permette di cancellare il file, che prende come parametro il file stesso :

public void EliminaFile(string FileName)
{
SHFILEOPSTRUCT StructFile = new SHFILEOPSTRUCT(
{
StructFile.fFlags = FOF_NOCONFIRMATION | FOF_ALLOWUNDO;
StructFile.pFrom = FileName;
StructFile.wFunc = FO_DELETE;
StructFile.pTo = null ;
}
try
{
SHFileOperation(ref StructFile);
}
catch (Exception ex)
{
MessageBox.Show("Errore: " + ex.Message);
}
}


About Luigi Melisi

Analista Programmatore Senior, Team Leader in svariati progetti, con esperienza decennale in analisi, progettazione e sviluppo di software gestionale desktop e web, di E-Commerce e sistemi di Content Management System.In questi anni ho utilizzato in prevalenza tecnologie Microsoft (Visual C#, ASP.NET, SQL Server, Visual Studio, Windows Mobile, ecc.) e programmazione orientata agli oggetti, ma ho maturato esperienza anche in altre tecnologie come Java e PHP.Attualmente mi occupo di consulenza informatica, di sviluppo software gestionale personalizzato, realizzazione di Siti Web, di sistemi di Content Management System. ed E-Commerce su misura del cliente.

Check Also

Come ricavare il dominio di primo livello dell’indirizzo attuale

Se ti si presenta la necessità di sapere come ricavare il dominio di primo livello …

Lascia un commento

%d blogger hanno fatto clic su Mi Piace per questo: