Как повторять все папки внутри подпапок папок корневого уровня
-
10-12-2019 - |
Вопрос
Ниже приведен код для итерации через папки корневого уровня, загружая папку загрузки, начинается с «A» и загружать подпункты от него, начиная с любой буквы.Я хочу скачать все уровни папки, а не только подпапки. Как я добиваюсь этого
foreach($folder in $RootFolder.SubFolders)
{
if($folder.Name.StartsWith("a")
{
ProcessFolder($folder.Url)
}
foreach($folder in $folders.SubFolders)
{
ProcessFolder($folder.Url)
}
}
. Решение
Я бы сделал что-то подобное:
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)
}
}
.
(Я понимаю, что там есть какой-то дублирование кода, и, вероятно, есть более элегантный способ сделать это, но что вы хотите за 3-минутный ответ?)
Не связан с sharepoint.stackexchange