Send a File to the Recycle Bin
是显而易见的搜索结果。我已经尝试了提供的包装器,但是当它进入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
,它确实使用Debug识别文件和文件夹,但没有任何内容显示在回收站中。
答案 0 :(得分:1)
我发现解决此问题的最简单方法是将回收站添加到项目中。
由于Unity支持的文件名和路径长度长于“ Windows资源管理器”,因此它不会将项目发送到回收站,因为回收站将无法保存它们。
这是Win32 API的限制。
如果最终在Unity回收站中得到两个同名文件,请创建另一个回收站或子回收站。
这不是一个方便的解决方案,但可以!
我个人解决此问题的方式是,我会随时保留项目的版本。然后,我可以返回到项目的任何早期版本。
答案 1 :(得分:0)
Send a File to the Recycle Bin确实是必经之路。我发现只是
using System;
我尝试使用FileOperationAPIWrapper脚本时丢失了。从那以后,我一直使用它成功地将文件移到回收站。