Задать вопрос
@Drovosek01

Какие есть нативные способы перемещения файла в Корзину на C# или .NET в Windows?

Когда писал pet-проект на Powershell с некоторыми вкраплениями C# хотел реализовать функционал не полностью удаления файлов/папок с накопителя, а перемещения их в Корзину пользователя.

Погуглив и пообщавшись с нейросетью нашел только способы из Powershell и C# переместить файлы в Корзину через прослойку VisualBasic

Пример на C#
код
using System;
using Microsoft.VisualBasic.FileIO;
class Program
{
    static void Main()
    {
        string filePath = @"C:\path\to\your\file.txt"; // Укажите путь к вашему файлу
        try
        {
            // Перемещение файла в корзину
            FileSystem.DeleteFile(filePath, UIOption.OnlyErrorDialogs, RecycleOption.SendToRecycleBin);
            Console.WriteLine("Файл перемещен в корзину.");
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Произошла ошибка: {ex.Message}");
        }
    }
}


Я плохо гуглил или в .NET для Windows действительно нет способов перемещения файлов в корзину без использования VisualBasic или импорта dll-файлов?
  • Вопрос задан
  • 38 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
Это и есть нативный способ.
Microsoft.VisualBasic.FileIO - это не "прослойка visual basic", а вполне обычная библиотека. Она не более "не нативная" чем стандартная mscorlib или любая другая.

Минус только в том, что этот способ будет работать только для интерактивных приложений, но не сервисов, ибо он вызывает системный диалог по перемещению в корзину.

Альтернативный вариант - использовать функцию из winapi SHFileOperationA
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы