문제

아래의 루트 레벨 폴더를 반복하는 코드는 폴더가 "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 분 답변으로 무엇을 원하십니까?)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 sharepoint.stackexchange
scroll top