como iterar através de todas as pastas dentro de subpastas de nível de raiz pastas
-
10-12-2019 - |
Pergunta
abaixo está o código para iterar através de nível de raiz pastas que pasta de downloads começa com "a" e fazer o download de sub-pastas a partir dele, começando com qualquer carta.Eu quero baixar todos os níveis de pasta e não apenas a subpasta.como faço para conseguir isso
foreach($folder in $RootFolder.SubFolders)
{
if($folder.Name.StartsWith("a")
{
ProcessFolder($folder.Url)
}
foreach($folder in $folders.SubFolders)
{
ProcessFolder($folder.Url)
}
}
Solução
Gostaria de fazer algo como isto:
function ProcessAllSubfolders($folderCollection)
{
foreach ($folder in $folderCollection)
{
if ($folder.Subfolders.Count -gt 0)
{
ProcessAllSubfolders($folder.SubFolders)
}
ProcessFolder($folder.Url)
}
}
# main
foreach ($folder in $RootFolder.SubFolders)
{
if ($folder.Name.StartsWith("a"))
{
if ($folder.Subfolders.Count -gt 0)
{
ProcessAllSubfolders($folder.SubFolders)
}
ProcessFolder($folder.Url)
}
}
(Eu percebo que há alguns duplicação de código lá e, provavelmente, há uma forma mais elegante de se fazer isso, mas o que você quer para a 3 minutos a resposta?)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a sharepoint.stackexchange