Unity3D中如何将文件发送到回收站

How to send a file to the recycle bin in Unity3D

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,它确实可以通过调试识别文件和文件夹,但是回收站中没有显示任何内容。

我找到了解决这个问题的最简单方法,就是在项目中添加一个回收站。

由于 Unity 支持长度超过 "Windows Explorer" 的文件名和路径长度,它不会将项目发送到回收站,因为回收站无法容纳它们。

这是 Win32 API 限制。

如果您的 Unity 回收站中有两个同名文件,请创建另一个回收站或子回收站。

这不是一个方便的解决方案,但它确实有效!

我个人解决这个问题的方法是,我在进行时保留项目的版本。然后我可以返回到我的项目的任何以前版本。

Send a File to the Recycle Bin 确实是要走的路。我发现只是

using System;

在我尝试使用 FileOperationAPIWrapper 脚本时丢失了。从那以后,我一直在使用它成功地将文件移动到回收站。