OneDrive'i API abil saate loetleda kaustas rohkem kui 200 üksust

Lehekülg uuendatud :
Lehe loomise kuupäev :

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 .