前言#
如果看过前一篇文章Lua os.remove()的朋友可能看这一篇会感觉比较熟悉,确实我也有一种错觉,感觉这个函数虽然会看起来简单,估计也会想上一章的函数那样出现各种各样的问题,到底会不会出现问题呢?我们来看具体的例子。
内容#
os.rename()##
- 原型:os.rename (oldname, newname)
- 解释:更改一个文件或目录名,若函数调用失败则返回
nil
加上错误信息。
Usage##
- 首先来编写一个文件,将文件命名为renametest.lua然后编写如下代码:
-- 重命名存在的文件
local rn_exist_file_ret = os.rename("srcfile.txt", "destfile.txt");
print("rename exist file ret:")
print(rn_exist_file_ret)
print("\n")
-- 重命名不存在的文件
local rn_notexist_file_ret = os.rename("srcfile2.txt", "destfile2.txt");
print("rename don't exist file ret:")
print(rn_notexist_file_ret)
print("\n")
-- 重命名存在的目录
local rn_exist_dir_ret = os.rename("srcmydir", "destmydir");
print("rename exist dir ret:")
print(rn_exist_dir_ret)
print("\n")
-- 重命名不存在的目录
local rn_notexist_dir_ret = os.rename("srcmydir2", "destmydir2");
print("rename don't exist dir ret:")
print(rn_notexist_dir_ret)
print("\n")
- 运行结果:
总结#
- 由运行结果来看这个函数还是中规中矩的,不像函数
os.remove()
似的,出现了那么多意外情况,函数的运行结果表明,确实与描述的一样,文件或者目录存在就可以重命名成功,否则就失败返回nil
. - 虽然结果出来,但是你有没有发现这个函数和
os.remove()
有个共同的特点,就是当函数执行失败返回nil
时并没有出现所说的字符串来描述这个错误,或许是我使用的方法不对,欢迎知道怎么显示这个错误信息的朋友告诉我一声,我好补充一下。
补充#
- 我终于知道上面提到的那个错误信息在哪里了,原来错误信息保存在函数
os.rename()
的第二个返回值里,我也是今天翻看lua文档时在别的函数的说明里看到了这样一句话:
plus an error message as a second result
2016-07-16 16:47:35