I am trying to get a count of each folders in a document library. There are many folders under the parent. Each folder may have few more folders and each one of this may have child, grand child folders.
I can add lot more coding but I have a feeling it could be done better way. Please suggest.
$web = Get-SPWeb "http://inside.cnv.uk/sales/SouthWest"
$list = $web.Lists["SalesManJR"]
$folders = $list.RootFolder.Subfolders
foreach ($folder in $folders)
{
if (!$folder.Name.Equals("Forms"))
{
write-host "Folder Name: " $folder.Name " Count: " $folder.Files.Count
$subfolderURL = $list.RootFolder.SubFolders[$list.Title+"/"+$folder.Name]
$subfolders = $subfolderURL.SubFolders
foreach ($subfolder in $subfolders)
{
write-host " Sub-Folder Name: " $subfolder.Name " Count: " $subfolder.Files.Count
}
}
}
$web.Dispose()
The following code works.
$web = Get-SPWeb "http://inside.cnv.uk/sales/SouthWest"
# $list name is list display name
$list = $web.Lists["SalesManJR"]
$folders = $list.RootFolder.Subfolders
foreach ($folder in $folders)
{
if (!$folder.Name.Equals("Forms"))
{
write-host ""
write-host "Folder Name: " $folder.Name " Count: " $folder.Files.Count
$subfolderURL = $list.RootFolder.SubFolders[$list.Title+"/"+$folder.Name]
$subfolders = $subfolderURL.SubFolders
foreach ($subfolder in $subfolders)
{
write-host " Folder Name: " $subfolder.Name " Count: " $subfolder.ItemCount
#write-host " Sub-Folder Name: " $subfolder.Name " Count: " $subfolder.Files.Count
# Sub Folder Level 2
$subfolders2 = $subfolder.SubFolders
foreach ($subfolder2 in $subfolders2)
{
write-host " Folder Name: " $subfolder2.Name " Count: " $subfolder2.ItemCount
#write-host " Sub-Folder Name: " $subfolder.Name " Count: " $subfolder.Files.Count
# Sub Folder Level 3
$subfolders3 = $subfolder2.SubFolders
foreach ($subfolder3 in $subfolders3)
{
write-host " Folder Name: " $subfolder3.Name " Count: " $subfolder3.ItemCount
# Sub Folder Level 4
$subfolders4 = $subfolder3.SubFolders
foreach ($subfolder4 in $subfolders4)
{
write-host " Folder Name: " $subfolder4.Name " Count: " $subfolder4.ItemCount
}
}
}
}
}
}
$web.Dispose()