Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File 使用lua skcript打开不带文件名的文件_File_Lua_Filenames - Fatal编程技术网

File 使用lua skcript打开不带文件名的文件

File 使用lua skcript打开不带文件名的文件,file,lua,filenames,File,Lua,Filenames,晚上好, 我目前正在开发一个程序,将文件中的信息导入数据库,出于测试目的,我使用IO以经典方式打开测试文件: function reader (file, delimeter) local f = io.open(file) for line in f:lines() do lines[count] = splitty(line, delimeter) count = count + 1; end end (本部分还包含拆分器的第一部分)

晚上好,

我目前正在开发一个程序,将文件中的信息导入数据库,出于测试目的,我使用IO以经典方式打开测试文件:

function reader (file, delimeter)
    local f = io.open(file)
    for line in f:lines() do
        lines[count] = splitty(line, delimeter)
        count = count + 1;
    end
end
(本部分还包含拆分器的第一部分)

但在实际环境中,数据库程序会立即将文件移动到另一个目录中,并将其名称更改为,例如:

$30$15$2016$09$26$13$27$24$444Z$.Pal.INV.csv
现在我知道了目录,但我真的无法预测名称,所以我想知道是否有一种方法可以在不知道名称的情况下打开文件。 (阅读后删除)

我想使用一个修改过的链接:

local inputFile = "D:\\Directory\\(*all)"
但它失败了

其他可浏览资料: 到目前为止,该系统仅计划在Windows PC上使用。
目录将始终只包含一个准备就绪的文件,而不包含其他文件。

您可以使用LuaFileSystem中的
lfs.dir
迭代器来迭代目录的内容。一个小例子:

local lfs = require("lfs")

local path = "D:\\Directory\\" -- Your directory path goes here.
for filename in lfs.dir(path) do
    print(filename) -- Work with filename, i will just print it
end

如果你保留了这些文件的记录,你就能知道哪一个是新的。如果只有一个文件,那么就更容易了,您只需使用
string
函数检查扩展名即可。根据我的记忆,迭代器包括

我不明白这个系统的意义。1.为什么名称不能是静态的和已知的。2.一个目录只有一个文件有什么意义?所有这些问题的核心是一个Datastudio,它应该管理整个数据,从从文件读取数据到数据库存储,再到将请求的数据传递给需要它们的进程,不幸的是,这件事还没有准备就绪或智能化设计,例如,它缺少一个自定义读取模式的选项(理解日期是什么,对象名是usw),我必须通过解决方法解决这个问题。数据库所做的,是重命名它在触发目录中获得的文件,而我的工具必须读取它,因此我需要读取重命名的文件。仍然提供我看到的非信息性、短暂的答案xD@warspyking-没有信息的回答?真正地Qui habet aures audiendi audiat。我指的是缺乏帮助他们理解其工作原理的解释。这是一种非常好且有效的方法,在ZeroBraneStudio中尝试过,但遗憾的是,实际Datastudio中的编译器没有LuaFileSystem库,所以我不得不使用另一个,但如果包括图书馆是一个选择,那么这个肯定会更好。
-- directory name and file name should consist of ASCII-7-bit characters only
local dir = [[C:\Temp\New Folder]]
local file = io.popen('dir /b/s/a-d "'..dir..'" 2>nul:'):read"*a":match"%C+"
if not file then
   error"No files in this directory"
end
-- print the file name of first file in the directory
print(file)  --> C:\Temp\New Folder\New Text Document.txt