如何将文件发送到 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,它确实可以使用调试识别文件和文件夹,但回收站中从未显示任何内容。

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

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

这是 Win32 API 限制。

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

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

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

将文件发送到回收站确实是要走的路。我发现很简单

using System;

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

相关内容

  • 没有找到相关文章

最新更新