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

时间:2018-01-10 14:08:43

标签: unity3d file-io recycle-bin

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识别文件和文件夹,但没有任何内容显示在回收站中。

2 个答案:

答案 0 :(得分:1)

我发现解决此问题的最简单方法是将回收站添加到项目中。

由于Unity支持的文件名和路径长度长于“ Windows资源管理器”,因此它不会将项目发送到回收站,因为回收站将无法保存它们。

这是Win32 API的限制。

如果最终在Unity回收站中得到两个同名文件,请创建另一个回收站或子回收站。

这不是一个方便的解决方案,但可以!

我个人解决此问题的方式是,我会随时保留项目的版本。然后,我可以返回到项目的任何早期版本。

答案 1 :(得分:0)

Send a File to the Recycle Bin确实是必经之路。我发现只是

using System;
我尝试使用FileOperationAPIWrapper脚本时

丢失了。从那以后,我一直使用它成功地将文件移到回收站。