lua 中读写文件一般都是用 io库中的方法,但是有很多资料对文件相对路径的问题都讲的不太清楚,经过我的测试得到以下结论。
在 io 操作中有两种路径的写法:绝对路径和相对路径
绝对路径:说的是在运行环境的完整路径,例如 D:\Test.txt , 调用io.open(“D:\Test.txt”)
相对路径:指的是在项目根目录下的路径,
例如:我的项目是unityObject,那我在 io 库的默认路径就是项目根目录 unityObject\ ,如果不指定路径的话(就是文件在根目录下)调用 io.open(“text.txt”),这种方式就是lua会从项目工程的根目录下查找指定文件名的文件。
但是,在实际开发过程中不同的 开发环境或发布平台 在最终发布的时候有些文件夹是不会打包到安装包的,所以,这时候就要指定到一个合适的文件夹中,例如在unity中Streaming Assets文件夹打包时候资源不压缩不加密。可以把一些简单不重要的文件放在这里,这时候就要指定相对路径了,例如: io.open(“Assets/StreamingAssets/text.txt”)这样lua就会从根目录开始按照指定的路径查找文件。
最后还有一点
windows下路径分割必须用两个斜线,这是因为 \是转移序列。\n表示换行 \\表示\本身 。\t表示制表符
io.open也可以使用 /做路径分割符号。
大家有什么建议欢迎友好交流