A small Powershell snippet which will create folder hierarchies within SharePoint lists and libraries
function EnsureListFolderTree($web, $list, $folderName) { | |
$curl = $list.RootFolder.ServerRelativeUrl | |
$folders = $folderName.Replace("^/+","").Split("/") | |
ForEach($fn in $folders) { | |
$furl = $curl + "/" + $fn | |
$f = $web.GetFolder($furl) | |
if ($f.Exists -eq $false) { | |
$f = $list.AddItem($curl, [Microsoft.SharePoint.SPFileSystemObjectType]::Folder, $fn) | |
$f.Update() | |
$f = $web.GetFolder($f.Folder.ServerRelativeUrl) | |
} | |
$curl = $f.ServerRelativeUrl | |
} | |
$f | |
} |
Usage
$w = Get-SPWeb "http://team.pdogs.local" $sa = $w.Lists["Site Assets"] $f = EnsureListFolderTree $w $sa "meetings/q1/q1-1" $f = EnsureListFolderTree $w $sa "meetings/q1/q1-2" $f = EnsureListFolderTree $w $sa "meetings/q2/q2-1" $f = EnsureListFolderTree $w $sa "meetings/q2/q2-2"
Published by