2010-03-05 46 views
0

我使用的分裂linux命令,以巨大的XML文件分割成节点规模的工厂。问题是现在我有几十万个文件的目录。红宝石 - 得到目录中的文件没有列出所有内容

我想办法让从目录中的文件(传递到另一个进程以导入到我们的数据库),而不需要在这上面列出的一切。这是如何Dir.foreach已经工作?任何其他想法?

+0

Dir.foreach是,如果你要处理的所有文件的解决方案。您可能需要考虑对父XML文件的所有节点文件使用唯一的子目录(当您使用linux split时)。 – klochner 2010-03-05 18:41:08

+0

是的,这是一个好主意,但它只能部分解决问题,因为一个文件比其他文件大得多。 – 2010-03-05 20:34:11

回答

3

您可以使用Dir.glob找到你需要的文件。更多细节here,但基本上,你通过它像Dir.glob 'dir/*.rb'模式,并取回文件名匹配模式。我认为这是以合理的方式完成的,但这取决于你的平台和实施。

至于Dir.foreach,这应该是有效的太 - 所关心的是,如果它具有处理周围的循环每次通过整个目录。但是这将是可怕的实施,情况并非如此。

相关问题