2015-06-10 35 views
3

我有一个目录的路径(作为字符串)。在那个目录中,有一堆文本文件。我想打开它的目录,然后转到每个文本文件并读取数据。如何读取lua目录中的一组文件

我已经试过

f = io.open(path) 
f:read("*a") 

我得到的错误 “无是目录”

我已经试过:

f = io.popen(path) 

我得到的错误: “权限被拒绝”

难道只是我,但它似乎比在卢阿做基本文件io要困难得多吗?

+1

有关[清单在Lua目录(HTTP://计算器。 com/questions/5303174/get-list-of-directory-in-a-lua) – ryanpattison

回答

4

目录不是文件。你不能打开它。

是的,lua本身有(有意)功能有限。

您可以使用luafilesystemluaposix及其他类似模块来获取此区域的更多功能。

+0

是的,目录不只是一个文件。但是如果你有一个目录A,它有一个目录B_i的列表,并且你想打开目录B_i中的所有文件,并且你拥有的是目录A的一个路径,似乎应该有一个简单的方法来做到这一点。 – lars

+0

大多数情况下,您可以访问支持目录操作的函数。 lua没有默认情况下(出于便携性的原因)。 –

4

您也可以使用下面的脚本列出文件的名称在给定的目录中(假设在Unix/POSIX):

dirname = '.' 
f = io.popen('ls ' .. dirname) 
for name in f:lines() do print(name) end 
+1

我会使用'io.popen('/ bin/ls'.. dirname)'来确保没有人欺骗我们的应用程序执行它们碰巧放在PATH上的第一个'ls'。 – llogiq