OneDrive C#SDKをコーディングしていて、複数のファイルを含むフォルダを共有していました。 onedrive.com
から共有フォルダにアクセスするとファイルを見ることができますが、Item
をチェックしようとすると、子カウントは常にゼロになります。私はこれが私の最後かパーミッションの問題で混乱するかもしれないと仮定しています - しかし、私はちょうどサニティチェックのためにそれを過去に走りたいと思っていました。OneDrive C#SDKの子要素を表示できません
コード:
private async Task GetItem(string id = null)
{
List<string> idsToSearch = new List<string>();
var expandValue = this.clientType == ClientType.Consumer
? "thumbnails,children(expand=thumbnails)"
: "thumbnails,children";
try
{
Item folder;
if (id == null)
{
folder = await this.oneDriveClient.Drive.Root.Request()
.Expand(expandValue).GetAsync(); //root
}
else
{
folder = await this.oneDriveClient.Drive.Items[id].Request()
.Expand(expandValue).GetAsync(); //children of root
}
WriteToFile(new List<string>(new[] { @"Folder: " + folder.Name }));
if (folder.Children.Count == 0)
{
WriteToFile(new List<string>(new[] { @"NO Children" }));
}
else
{
foreach (var child in folder.Children)
{
WriteToFile(new List<string>(new[] {
@"Children of " + folder.Name + " : " + child.Name }));
}
foreach (var item in folder.Children)
{
GetItem(item.Id);
idsToSearch.Add(item.Id);
}
}
}
catch (Exception exception)
{
PresentServiceException(exception);
}
}
それは共有フォルダのオブジェクトに到達したとき、私はまたItem
オブジェクトのスナップショットが含まれていました。
更新
を見た後、 folder
オブジェクトもう少し私はファウンデーション適切な数の子カウントを返すRemoteItem
があるが、子要素をフェッチするためのメタデータはありません。それは、これがRemoteItem
シナリオであることが決定された質問に対するコメントから
スクリーンショットでは、「AdditionalData」がいくつかあります。それは何かを見せてくれますか?それはいくつかの手がかりを提供するかもしれない。また、フォルダに有効なデータ(名前など)があるとしますか?その場合、権限は常に継承階層を流れていくため、権限の問題はないはずです。 – Brad
@ブラッド - 私もそのアイデアを持っていましたが、それを見ても目を引くものはないようです。私はしかし、写真を更新しました。 – jdave
ちょうど標準のODataのもの...何も使用しない:)。 'Folder.ChildCount'プロパティは期待値を含んでいますか? – Brad