Как отправить файл в корзину в Unity3D

Отправьте файл в корзину, являющийся очевидным результатом поиска. Я пробовал предоставленную оболочку, но при переносе в Unity возникают ошибки, IntPtr не компилируется для начала. Я также импортировал Microsoft.VisualBasic и это зависит System.Deployment в мой проект и я успешно звоню

Debug.Log(Microsoft.VisualBasic.FileIO.FileSystem.FileExists(path + "\\test.txt"));
Microsoft.VisualBasic.FileIO.FileSystem.DeleteFile(path + "\\test.txt", UIOption.OnlyErrorDialogs, RecycleOption.SendToRecycleBin);

но он просто удаляет файл, он не попадает в корзину. Unity работает на диске C, проект также находится на диске C. Я пробовал файлы и папки и пробовал RecycleOption.DeletePermanentlyон распознает файлы и папки с помощью отладки, но в корзине ничего не появляется.

2 ответа

Решение

Отправить файл в корзину действительно путь. Я обнаружил, что просто

using System;

отсутствовал в моих попытках использовать скрипт FileOperationAPIWrapper. С тех пор я успешно перемещаю файлы в корзину, используя его.

Я нашел самый простой способ решить эту проблему, это просто добавить корзину в проект.

Поскольку Unity поддерживает имена файлов и длину пути больше, чем "Проводник Windows", он не отправляет элементы в корзину, поскольку корзина не сможет их удерживать.

Это ограничение Win32 API.

Если в вашей корзине Unity появятся два файла с одинаковыми именами, создайте другую или дочернюю корзину.

Не удобное решение, но оно работает!

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

Другие вопросы по тегам