2013-04-23 110 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 /文件(不帶斜線,因爲它似乎是可選的)!

請讓我知道這是否解決了您的問題。