Unity中lua 的 io.open() 文件路径的问题

Unity中lua 的 io.open() 文件路径的问题,第1张

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也可以使用 /做路径分割符号。

file=io.open("c:\Files\xxx.txt","w")或者\x0d\x0afile=assert(io.open("c:\Files\xxx.txt","w"))\x0d\x0a\x0d\x0ac:\Files\xxx.txt代表路径xxx代表文件名.txt代表创建文件格式逗号后面的参数w代表是写入的意思,他会在这个文件夹中创建这个名字和格式的文件。\x0d\x0a\x0d\x0a第一个方法和第二个方法的区别是第一个会隐藏接收一个参数显示错误信息\x0d\x0a第二个方法会在不成功的时候直接报错。

F=io.open("c:\\file","w")windows下路径分割必须用两个斜线,这是因为\是转移序列。\n表示换行\\表示\本身。\t表示制表符io.open也可以使用/做路径分割符号。另外打开方式:r是只读方式打开,不能写入。w只写方式打开,不能读取。a末尾追加。r+以读写方式打开,保留原有数据。这个模式是自由度最高的。w+以读写方式打开,删除原有数据。就是打开后文件是空文件。a+以读写方式打开,保留原有数据,只能在文件末尾添加,不能在文件中间改写数据。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11457518.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存