0

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

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

我使用了来自 live Connect 开发中心的 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!”

感谢任何可以提供帮助的人。

4

1 回答 1

2

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

需要注意的重要事项是:

  1. 只能有一个对象的引用(OBJECT_ID);
  2. 此引用只能是对象的 ID(由 API 返回)或特殊别名,例如me/skydrive
  3. /files应该始终是路径的最后一部分(假设我们不需要使用查询字符串)。

因此,要列出您的子文件夹folder.567391047.34282821 的内容!,您应该尝试使用以下路径格式: /folder.567391047.34282821 !/files甚至是folder.567391047.34282821!/files(不带前导斜杠,因为它似乎是可选的)。

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

于 2013-07-27T11:33:19.513 回答