获取FAKE的子目录中的文件列表

时间:2014-09-11 17:22:16

标签: f# f#-fake

我正在尝试使用FAKE来构建位于多个子目录中的F#文件。 filesInDirMatching来自FAKE。

#r @"packages/FAKE/tools/FakeLib.dll"
open System.IO
open Fake
open Fake.FileSystemHelper
open Fake.FscHelper

let allDirs = DirectoryInfo(__SOURCE_DIRECTORY__).GetDirectories "*"
let all = allDirs |> Array.map(fun d -> filesInDirMatching "Example.fs" d)

除了在最后一行之外,它创建了一个二维数组(因为filesInDirMatching创建了一个新的FileDirectory数组,我猜),这是所有类型的工作。是否可以将二维数组缩减为一维数组?或者有更好的方法吗?

2 个答案:

答案 0 :(得分:4)

我猜二维数组是指一个数组数组(锯齿状数组)。

如果有,请将Array.map替换为Array.collect

答案 1 :(得分:3)

您可以使用Array.concat将数组展平为单个维度:

let all = allDirs
          |> Array.map(fun d -> filesInDirMatching "Example.fs" d)
          |> Array.concat