我编写了以下条件来从文件夹及其子文件夹中获取所有*.js
个文件。我写了下面的命令来获取列表:
c:/svn/myfolder/**/*.js
"myfolder"
中有4个子文件夹a, b, c, d
,我想从三个子文件夹中获取.js
个文件列表,并跳过检查子文件夹'c'
。
目前,当我放置.js
myfolder/**/*.js
个文件
答案 0 :(得分:2)
Ruby的glob语法借用了正则表达式。您可以使用括号指定一系列字符。
Dir['c:/svn/myfolder/[abd]/*.js']
这将包括a,b和d但不包括c。你也可以否定:
Dir['c:/svn/myfolder/[^c]/*.js']
这将包括除 有关Ruby globs的更多信息,请参阅http://ruby-doc.org/core-2.1.3/Dir.html#method-c-glob。
答案 1 :(得分:0)
您可以使用Dir glob将所有文件和目录作为列表获取。要使用正则表达式来完成此任务,请执行以下操作:
Dir.glob(File.join(['c:/svn/myfolder', '*[^excluded_folder]', '**', '*.js']))
*[^excluded_folder]
包含除 excluded_folder 以外的所有内容。
将**
作为路径的一部分,将从当前目录路径以及所有子目录中获取文件。