ルートレベルフォルダのサブフォルダ内のすべてのフォルダを繰り返す方法
-
10-12-2019 - |
質問
下の
は、ダウンロードフォルダをダウンロードしたルートレベルフォルダを繰り返すコードで、任意の文字から始めてサブフォルダをダウンロードします。サブフォルダだけではなく、すべてのフォルダレベルをダウンロードしたいです。これを達成する
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