无法使用Skydrive API获取文件夹的内容

时间:2013-04-23 23:15:27

标签: javascript api onedrive

我在显示位于根目录中的文件夹的内容时遇到了问题。它设法确定文件目录中的文件夹,但是当我尝试对其中一个文件夹执行相同操作时它不起作用。

我在WL.api的路径名中解决了这个问题。但是我可能弄错了。

我使用了live connect development center的skydrive页面中的代码示例。在下面的示例中,我首先尝试确定文件夹,但最终我想获取存储在特定目录中的所有文件的名称。

 WL.api({ path: "me/skydrive/files/myfolder", method: "get" }).then(
  function (response) {
   var items = response.data;
   var outPuts = "";
   var number = items.length
    var tempos = new Array();
   var foundFolder = 0;
  for (var i = 0; i < items.length; i++) {
    if (items[i].type === "folder" || items[i].type === "album") {
    tempos[i] = items[i].name;
    foundFolder += 1;
  }
  }
     if (foundFolder == 0) {
        folderss.innerHTML = ("Unable to find any folders");
     }
    else {
      for (var i = 0; i < number; i++) {
        outPuts = outPuts + tempos[i] + "<br /> <br />"
       }
     folderss.innerHTML = outPuts;
    }
 }
 );

如果我只为WL路径保留“me / skydrive / files”。有用。但是,如果我添加任何特定的文件夹名称,就像我的情况“me / skydrive / files / myfolder”那样,调用什么都不返回。或者我可以声明一条路径:“me / skydrive / files / folder.567391047.34282821!”

感谢任何能提供帮助的人。

1 个答案:

答案 0 :(得分:2)

我认为您的问题是由于您使用的路径格式无效。根据{{​​3}},列出文件的有效路径具有以下形式: / OBJECT_ID / files ,其中OBJECT_ID可替换为 me / skydrive 以引用Skydrive根文件夹。

需要注意的重要事项是:

  1. 只能在一个对象上引用( OBJECT_ID );
  2. 此引用只能是对象的ID(由API返回)或特殊别名,例如 me / skydrive ;
  3. / files 应该始终是路径的最后一部分(假设我们不需要使用查询字符串)。
  4. 因此,要列出子文件夹 folder.567391047.34282821!的内容,您应该尝试使用以下路径格式: /folder.567391047.34282821!/files 甚至 folder.567391047.34282821!/ files (没有前导斜杠,因为它似乎是可选的。)

    如果这可以解决您的问题,请告诉我。