2013-04-23 74 views
0

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

我解决了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; 
    } 
} 
); 

,如果我只保留“我/的SkyDrive /文件”为WL路径。有用。但是,如果我添加任何特定的文件夹名称,就像在我的情况下“me/skydrive/files/myfolder”,该调用不会返回任何内容。或者我可能会声明如下路径:“me/skydrive/files/folder.567391047.34282821!”

谢谢任何​​人谁可以提供帮助。

回答

2

我相信你的问题是由于你使用的路径格式无效。根据the examples from the docs,列表文件的有效路径具有以下形式:/OBJECT_ID/files,其中OBJECT_ID可能被替换为me/skydrive以引用Skydrive根文件夹。

要注意的重要的事情是:

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

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

请让我知道这是否解决了您的问题。