在 Unity3d 中处理文件时使用 System.IO 是否安全?

Is it safe to use System.IO when dealing with files in Unity3d?

我正在编写一个需要访问文件的游戏。也就是说,它必须写入文件并从中读取。问题是我是否可以使用 System.IO 类 而不必担心由于平台不兼容而可能出现的问题。

无论游戏 运行 在哪个平台上,这些方法都有效吗?如果没有,是否可以独立于平台处理文件?

是的,无论您在哪里,它们都可以工作 运行。从我自己的经验来看,不知道为什么会这样。

想澄清一下。当然,在不同平台上处理路径时,您应该使用常识。通常你只在代码中使用相对路径,当你使用绝对路径时,你通常从你的配置或其他代码中获取它们(例如:Path.GetTempPath())。除非您硬编码您的绝对路径并手动组合相对路径(即 "mydir/myanotherdir"),否则您应该没问题。即使你不这样做,mono 也有可移植层(阅读这里 - http://www.mono-project.com/docs/advanced/iomap/),可以轻松地将 IO 代码从 windows 移植到 linux。但是不要依赖它并且:

  1. 不要硬编码绝对路径。从每个平台不同的一些配置文件中获取它们(如果确实有必要),或者从调用内置方法(即 Path.GetTempPath、AppDomain.CurrentDomain.BaseDirectory)等等。
  2. 始终使用提供的方法来组合路径(Path.Combine、Path.DirectorySeparatorChar 等等)。那你就没事了。