Creating a list of Folders in an ItemGroup using MSBuild

msbuild

I'm trying to build an ItemGroup in an MSBuild script which contains a list of folders directly below a given 'Root' folder. So – in this example…

+ Root folder
---- Sub Folder 1
-------- Sub-Sub Folder 1
-------- Sub-Sub Folder 2
---- Sub Folder 2
---- Sub Folder 3

… I would want my ItemGroup to contain "Sub Folder 1", "Sub Folder 2" and "Sub Folder 3".

There may be a number of files at any point in the hierarchy, but I'm only interested in the folders.

Can anyone help!?

Best Answer

In MSBuild 4.0 this is possible:

<ItemGroup>
  <Folders Include="$([System.IO.Directory]::GetDirectories(&quot;$(RootFolder)&quot;))" />
</ItemGroup>

Property Functions: http://msdn.microsoft.com/en-us/library/dd633440.aspx