Как отправить файл в корзину в 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 появятся два файла с одинаковыми именами, создайте другую или дочернюю корзину.
Не удобное решение, но оно работает!
Способ, которым я обхожу это лично, - я держу версии своего проекта на ходу. Затем я могу вернуться к любой предыдущей версии моего проекта.