晚上好
我目前正在开发一种从csv表导入机器创建的数据到数据库的方法。我的问题是,是否有一种方法可以用Lua对csv文件中的更改做出反应。
文件得到如下格式的一行:
17162H,"801234500001",9/23/2016 12:33:30 PM,"INV"
每次扫描器完成扫描过程时,在旧行下添加,但没有直接连接到数据库,以触发脚本。
如果通过不同的文件大小,文件夹大小(包含文件的文件夹)或文件信息中的变化(如最后打开日期)检测到更改并不重要,但由于性能原因,我无法永久打开并读取它。
这也是我第一次在这里提问,很抱歉我的方式很笨拙,我会努力改进的。
看一下linotify,它为inotify提供了lua绑定,并且看起来应该使用"modify"事件来触发脚本。
我在我的间谍日志应用程序中使用基于LibUV的变体用法:
file_monitor(path_to_file, {eol = 'r?n'}, function(line)
...
end)
如果你需要在Windows上运行这个,你可以使用winapi库,它支持文件观察者。这里有一个例子是如何在我的一个项目中使用它的;您需要调用winapi.sleep()
,以便有时间触发检查。