Comment itération à travers tous les dossiers à l'intérieur des sous-dossiers de dossiers de niveau de racine

sharepoint.stackexchange https://sharepoint.stackexchange.com//questions/92622

  •  10-12-2019
  •  | 
  •  

Question

Ci-dessous est le code à itérer via des dossiers de niveau racine que téléchargements dossiers commence par "A" et téléchargez des sous-dossiers de celui-ci en commençant par une lettre.Je veux télécharger tous les niveaux de dossiers et non seulement le sous-dossier.Comment puis-je atteindre ce

foreach($folder in $RootFolder.SubFolders)
{
if($folder.Name.StartsWith("a")
{
ProcessFolder($folder.Url)
}
foreach($folder in $folders.SubFolders)
{
ProcessFolder($folder.Url)

}

}

Était-ce utile?

La solution

Je ferais quelque chose comme ça:

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)
    }
}

(Je me rends compte qu'il y a une duplication de code et il y a probablement une façon plus élégante de le faire, mais que voulez-vous pour une réponse de 3 minutes?)

Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange
scroll top