如何查找Skydrive文件夹的文件夹ID

时间:2014-01-01 12:41:02

标签: c# windows-phone-8 onedrive

如何使用文件夹名称查找Skydrive文件夹的文件夹ID。或者是否可以在没有文件夹ID的情况下删除Skydrive中的文件夹。

使用的是Windows Phone 8 - LiveConnectClient

-Thanks

1 个答案:

答案 0 :(得分:1)

我认为没有搜索API,但您可以自己动手。

此代码适用于5.2 SDK但您明白了。列出根文件夹中的文件夹。如果需要,请列出子文件夹,直到找到目录。

这是列出根目录:

clientFolder.GetAsync("me/skydrive/files");

获得ID:

        foreach (IDictionary<string, object> album in data)
        {
            SkydriveAlbum albumItem = new SkydriveAlbum();
            albumItem.ID = (string)album["id"];
        }

完整代码:

/// <summary>
/// Gets the root dirs from SkyDrive
/// </summary>
public void ListSkyDriveRootAlbums()
{
    List<SkydriveAlbum> albums = new List<SkydriveAlbum>();
    LiveConnectClient clientFolder = new LiveConnectClient(App.Session);
    clientFolder.GetCompleted += (sender, e) =>
    {
        if (e.Error == null)
        {
            List<object> data = (List<object>)e.Result["data"];
            foreach (IDictionary<string, object> album in data)
            {
                SkydriveAlbum albumItem = new SkydriveAlbum();
                albumItem.Title = (string)album["name"];
                albumItem.Description = (string)album["description"];
                albumItem.ID = (string)album["id"];
                albums.Add(albumItem);
            }

            if (ListAlbumsCompleted != null)
            {
                ListAlbumsCompleted(albums.ToArray(), e.Error);
            }
        }
        else if (ListAlbumsCompleted != null)
        {
            ListAlbumsCompleted(null, e.Error);
        }
    };

    clientFolder.GetAsync("me/skydrive/files");
}