Получить список файлов в подкаталогах для FAKE

Я пытаюсь использовать FAKE для создания файлов F#, которые расположены в нескольких подкаталогах. Файлы InDirMatching от 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 ответа

Решение

Я предполагаю, что под двумерным массивом вы подразумеваете массив массивов (зубчатый массив).

Если это так, просто замените Array.map с Array.collect

Вы можете сгладить массив в одном измерении с Array.concat:

let all = allDirs
          |> Array.map(fun d -> filesInDirMatching "Example.fs" d)
          |> Array.concat
Другие вопросы по тегам