2017-03-22 80 views
1

我試圖使用OneDrive API在另一個文件夾內創建文件夾。我使用了this頁面的文檔。使用OneDrive API在另一個文件夾內創建文件夾

首先,我創建一個新的文件夾JSON對象:

var folderObject = JObject.FromObject(new 
{ 
    name = "New Folder", 
    folder = new 
    { } 
}); 

其次,我這個對象添加到HttpContent:

HttpContent content = new StringContent(folderObject.ToString(), Encoding.UTF8, "application/json"); 

然後我做一個POST請求是這樣的:

HttpResponseMessage response = await client.PostAsync("/v1.0/drive/root/children", content); 

這工作正常,名爲新文件夾的文件夾被添加到我的驅動器的根目錄。現在我想在剛創建的文件夾內創建一個文件夾。所以,我做一個POST請求,看起來像這樣:

HttpResponseMessage response = await client.PostAsync("/v1.0/drive/root/New Folder/children", content); 

我想到一個名爲新建文件夾以前創建的文件夾內的新文件夾。但是這個請求給了我一個HTTP 400錯誤。

如何創建另一個文件夾內的新文件夾?

回答

1

您的第二個請求格式不正確。

有兩種方法來創建一個項目爲另一個孩子 - 通過ID或路徑。

通過ID看起來是這樣的:

HttpResponseMessage response = await client.PostAsync("/v1.0/drive/root/items/{parentItem.id}/children", content); 

通過路徑看起來像(注意使用冒號):

HttpResponseMessage response = await client.PostAsync("/v1.0/drive/root{parentItem path}:/children", content); 

鑑於情況下,讓你以後最有可能:

HttpResponseMessage response = await client.PostAsync("/v1.0/drive/root:/New Folder:/children", content); 
+0

謝謝您的回答。也許把它添加到API文檔是一個好主意。我使用的文檔頁面僅顯示使用項目標識的請求URI。 'POST /驅動器/項目/ {父-ID}/children' 示例請求使用一個路徑,但不使用冒號。 – MennoB

+0

感謝您的反饋,它似乎可以使用一些工作來更清楚地瞭解文件夾創建選項。 – Brad

相關問題