Lua os.rename()

前言#

如果看过前一篇文章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")
  • 运行结果:
Lua os.rename()_第1张图片
rename.png

总结#

  • 由运行结果来看这个函数还是中规中矩的,不像函数os.remove()似的,出现了那么多意外情况,函数的运行结果表明,确实与描述的一样,文件或者目录存在就可以重命名成功,否则就失败返回nil.
  • 虽然结果出来,但是你有没有发现这个函数和os.remove()有个共同的特点,就是当函数执行失败返回nil时并没有出现所说的字符串来描述这个错误,或许是我使用的方法不对,欢迎知道怎么显示这个错误信息的朋友告诉我一声,我好补充一下。

补充#

  • 我终于知道上面提到的那个错误信息在哪里了,原来错误信息保存在函数os.rename()的第二个返回值里,我也是今天翻看lua文档时在别的函数的说明里看到了这样一句话:

plus an error message as a second result
2016-07-16 16:47:35

你可能感兴趣的:(Lua os.rename())