在 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也可以使用 /做路径分割符号。
Lua require可以加载一个 lua文件进来 搜索路径默认是 lua的安装目录可以打印package.path查看用那些搜索路径也可以 添加自己的路径
following code
如果在Windows下(??Linux行不行不知道)\x0d\x0aobj=io.popen("cd") --如果不在交互模式下,前面可以添加local \x0d\x0apath=obj:read("*all"):sub(1,-2)--path存放当前路径\x0d\x0aobj:close() --关掉句柄\x0d\x0a上述原理是利用Windows的cd命令返回工作目录;至于sub(1,-2)是为了去掉换行符\x0d\x0a当然如果你有lua socks或者你有lfs(注意匹配你的Lua版本),你可以使用lfs(Lua File System)\x0d\x0arequire("lfs")\x0d\x0apath=lfs.currentdir()\x0d\x0a这个则是Lua文件系统库中的函数。\x0d\x0a??就是这样欢迎分享,转载请注明来源:内存溢出
评论列表(0条)