File 使用lua skcript打开不带文件名的文件
晚上好, 我目前正在开发一个程序,将文件中的信息导入数据库,出于测试目的,我使用IO以经典方式打开测试文件: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 (本部分还包含拆分器的第一部分)
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