OneDrive'i API abil saate loetleda kaustas rohkem kui 200 üksust
Töökeskkond
- Visuaalne stuudio
-
- Visuaalne stuudio 2022
- .NET
-
- .NET 8
- Microsofti autentimise API
-
- 2.0 OAuth 2
- Microsoft OneDrive'i API
-
- 1.0
- Microsoft.Graph
-
- 5.68.0
- Microsofti kontode tüübid
-
- Töö- või koolikonto
Eeltingimused
- Visuaalne stuudio
-
- Üks versioonidest
- .NET
-
- Üks versioonidest
- Microsofti autentimise API
-
- 2.0 OAuth 2
- Microsoft OneDrive'i API
-
- 1.0
- Microsoft.Graph
-
- 5.XX
- Microsofti kontode tüübid
-
- Töö- või koolikonto
Korraga tootavate üksuste maksimaalne arv
OneDrive'i API abil kausta sisu toomisel on korraga tuudav maksimaalne arv 200. Selle arvu leiate ka allolevalt ametlikult veebisaidilt.
See kehtib isegi siis, kui vajutate URL-i otse, aga Microsoft.Graph
ka siis, kui kasutate teeki.
Järgmine kood, mida mainiti eelmistes näpunäidetes, toob ainult kuni 200 tulemust.
Vigu ei esine, kuid saate kontrollida, kas üksusi on rohkem kui 201, kontrollides,DriveItemCollectionResponse.OdataNextLink
kas atribuudi väärtus on määratud.
// フォルダ内アイテム一覧取得
var folderChildren = await graphClient.Drives[drive.Id].Items[folderItem.Id].Children.GetAsync();
if (folderChildren == null || folderChildren.Value == null)
{
Console.WriteLine("フォルダの一覧を取得できませんでした。");
return;
}
foreach (var item in folderChildren.Value)
{
Console.WriteLine($"Type={(item.File != null ? "File" : "Folder")}, Id={item.Id}, Name={item.Name}, Size={item.Size}");
}
Kui soovite seda saada HTTP-päringu kaudu, @odata.nextLink
peate selle saamiseks pääsema ükshaaval juurde URL-ile.
Microsoft.Graph
Kui kasutate teeki, on lihtsam viis hankida kõik rohkem kui 200 üksust.
PageIterator
Seal on klass nimega , nii et kõik, mida pead tegema, on seda kasutada. Kasutage seda järgmiselt:
// フォルダ内アイテム一覧取得
var folderChildren = await graphClient.Drives[drive.Id].Items[folderItem.Id].Children.GetAsync();
if (folderChildren == null || folderChildren.Value == null)
{
Console.WriteLine("フォルダの一覧を取得できませんでした。");
return;
}
var pageIterator = PageIterator<DriveItem, DriveItemCollectionResponse>.CreatePageIterator(
graphClient,
folderChildren,
(item) =>
{
Console.WriteLine($"Type={(item.File != null ? "File" : "Folder")}, Id={item.Id}, Name={item.Name}, Size={item.Size}");
return true; // false を返すまで次のアイテムを列挙します
});
await pageIterator.IterateAsync();
Kui olete saanud kaustaüksuste loendi vastuse ()DriveItemCollectionResponse
PageIterator.CreatePageIterator
Määrake see meetodi teise argumendina.
Kolmas argument on tagasihelistamine, mida kutsutakse üksuste kaupa, nii et kui loetlete selle, peaksite saama kõik üksused hankida.
PageIterator.CreatePageIterator
Muide, genereerib lihtsalt iteratsiooni, nii et peame kutsuma meetodit lõpus PageIterator.IterateAsync
.