Unity3D在路径判断上的一个注意点
在Unity3D开发项目时,有时需要进行路径是否存在的断定:
System.IO.File.Exist(string filePath);
System.IO.Directory(string dirPath);
注意这接口只是判定磁盘(闪存)物理路径上是否存在某个文件(目录),我们知道Application.streamingAssetsPath
取到的是StreamingAssets资源包路径,此资源包是Unity3D在编译时将工程目录StreamingAssets中的资源编译打包后生成的。
所以,我们尝试:
System.IO.File.Exist(Application.StreamingAssets + "/file.txt");
这样去判定文件是否存在时,会返回False,因为这本就不是一个文件物理路径。
Application.persistentDataPath
所指向路径,及其下的文件不会被Unity3D编译打包,其中的文件或目录是可以使用System.IO.File.Exist()接口判断是否存在的
你的意思是,如果文件在Application.StreamingAssets中,用System.IO.File.Exist是取不到他的存在与否的,而persistentDataPath就可以是吧?
是的,persistentDataPath是真实存在的物理路径,如果做热更新资源也是放到persistentDataPath目录
感谢博主,帮大忙了.