2014-12-02 88 views
2

我想知道如何做类似下面的一个指定的文件类型的所有文件...阅读目录为

我有一个目录,我们称之为目录“d:\文件夹\”,它有一些文件类型,如.json,.lua等,我需要能够将适当的文件放在基于他们的文件类型的表中。我如何通过Lua做到这一点,而无需外部库?另外,如何通过lua获取关于文件的其他信息,如大小,修改日期等,并存储该信息?

+3

这取决于操作系统。在没有外部库的情况下在Lua中执行目录操作是不可能的。 – 2014-12-02 02:20:05

+0

Windows是操作系统。但是,你认为目录操作是不可能的?像删除文件,创建文件等等都可以完成......使用诸如io.open和os.remove等方法。这或多或少是可能的。像复制和粘贴这样的事情可以完成,它只需要很多工作。但是不应该通过string.match或类似的东西来找到文件扩展名吗? – B1313 2014-12-02 02:22:40

+0

如何获取目录中的所有文件名? ANSI C没有目录的概念。 – 2014-12-02 02:31:17

回答

1

作为Yu Hao said in the comment,Lua本身没有任何方法来获取文件夹中的文件列表或访问这些文件的属性。就外部库而言,如果您正在寻找特定于Windows的解决方案,则可以使用Lua Filesystem模块,该模块具有您需要的所有内容或winapi。两者都是使用mingw很容易编译的小型库。

如果您正在寻找Windows-only-no-external-library解决方案,您应该可以运行“dir”命令并使用io.popen处理其结果。您可以解析捕获的输出并基于此获取文件名,大小和日期。您还可以使用file:seek获取文件大小,但由于您可能正在解析,因此可以从输出中获取所有文件。我认为没有比这更简单的东西。

怎么样寻找代表任何和所有字符的文件可以拥有一种模式,然后.file_type ...然后运行,通过io.open例如......可能吗?

您将无法通过枚举可能的符号组合来“猜测”文件名,只是因为这样......会......需要......一个......非常......长.... 时间。