activex.net.ru

ActiveX .NET SharePoint Утилиты Скрипты Статьи ... Форум

Статьи

Пример перемещения файла / директории в корзину (.NET / C#)

Ниже приведен пример использования Win32 API функции SHFileOperation для перемещения файла или директории в корзину Windows. В случае перемещения директории в корзину, выбранная директория может содержать файлы и папки.

Текст приложения RemoveToRecycleBin на C#:


using System;
using System.Runtime.InteropServices;
using System.ComponentModel;

namespace RemoveToRecycleBin
{
/// <summary>
/// Summary description for RecycleBin.
/// </summary>
class RecycleBin
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[StructLayout(LayoutKind.Sequential, CharSet=CharSet.Unicode)]
internal struct SHFILEOPSTRUCT
{
public IntPtr hWnd;
public UInt32 wFunc;
public IntPtr pFrom;
public IntPtr pTo;
public UInt16 fFlags;
public Int32 fAnyOperationsAborted;
public IntPtr hNameMappings;
[MarshalAs(UnmanagedType.LPWStr)]
public string lpszProgressTitle;
}
[System.Runtime.InteropServices.DllImport("shell32.dll", CharSet = CharSet.Unicode, SetLastError=true)]
public static extern int SHFileOperation(ref SHFILEOPSTRUCT lpFileOp);
[STAThread]
static void Main(string[] args)
{
int res;
// полный путь к удаляемому файлу или папке
// завершающий символ \0
string strPath = "C:\\file_del.txt" + '\0';
SHFILEOPSTRUCT FileOp = new SHFILEOPSTRUCT();
FileOp.hWnd = IntPtr.Zero;
// удаляем файл / папку
FileOp.wFunc = (uint)0x0003;
FileOp.pFrom = Marshal.StringToHGlobalUni(strPath);
FileOp.pTo = IntPtr.Zero;
// без подтверждения пользователя
FileOp.fFlags = (ushort)(0x0004 | 0x0040 | 0x0010);
FileOp.lpszProgressTitle = "";
FileOp.fAnyOperationsAborted = 0;
FileOp.hNameMappings = IntPtr.Zero;
res = SHFileOperation(ref FileOp);
if (res != 0)
{
// произошла ошибка
Console.WriteLine("Error");
}
else
{
if (FileOp.fAnyOperationsAborted != 0)
{
// операция была прервана
Console.WriteLine("Remove operation aborted");
}
}
}
}
}

В результате выполнения данного приложения, файл file_del.txt будет перемещен в корзину Windows.

Исходный текст приложения: recyclebin.zip



Copyright © 2000-2017 Христофоров Юрий Rambler's Top100

   Rambler's Top100