在驱动器中新建文件夹
本文内容
命名空间:microsoft.graph
使用指定的父项或路径在驱动器 中新建文件夹或 DriveItem 。
权限
要调用此 API,需要以下权限之一。要了解详细信息,包括如何选择权限的信息,请参阅权限 。
权限类型
权限(从最低特权到最高特权)
委派(工作或学校帐户)
Files.ReadWrite、Files.ReadWrite.All、Sites.ReadWrite.All
委派(个人 Microsoft 帐户)
Files.ReadWrite、Files.ReadWrite.All
应用程序
Files.ReadWrite.All、Sites.ReadWrite.All
HTTP 请求
POST /drives/{drive-id}/items/{parent-item-id}/children
POST /groups/{group-id}/drive/items/{parent-item-id}/children
POST /me/drive/items/{parent-item-id}/children
POST /sites/{site-id}/drive/items/{parent-item-id}/children
POST /users/{user-id}/drive/items/{parent-item-id}/children
请求正文
在请求正文中,提供要创建的 DriveItem 资源的 JSON 表示形式。
响应
如果成功,此方法在响应正文中返回 201 Created 响应代码和 DriveItem 资源。
示例
请求
下面是请求在登录用户的 OneDrive 根文件夹下新建文件夹的示例。
@microsoft.graph.conflictBehavior 属性用于指示是否已存在具有相同名称的项,服务是否应在创建文件夹时选择新名称。
POST /me/drive/root/children
Content-Type: application/json
{
"name": "New Folder",
"folder": { },
"@microsoft.graph.conflictBehavior": "rename"
}
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var driveItem = new DriveItem
{
Name = "New Folder",
Folder = new Folder
{
},
AdditionalData = new Dictionary<string, object>()
{
{"@microsoft.graph.conflictBehavior", "rename"}
}
};
await graphClient.Me.Drive.Root.Children
.Request()
.AddAsync(driveItem);
有关如何将 SDK 添加 到项目并 创建 authProvider 实例的 详细信息,请参阅 SDK 文档 。
const options = {
authProvider,
};
const client = Client.init(options);
const driveItem = {
name: 'New Folder',
folder: { },
'@microsoft.graph.conflictBehavior': 'rename'
};
await client.api('/me/drive/root/children')
.post(driveItem);
有关如何将 SDK 添加 到项目并 创建 authProvider 实例的 详细信息,请参阅 SDK 文档 。
MSHTTPClient *httpClient = [MSClientFactory createHTTPClientWithAuthenticationProvider:authenticationProvider];
NSString *MSGraphBaseURL = @"https://graph.microsoft.com/v1.0/";
NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:[MSGraphBaseURL stringByAppendingString:@"/me/drive/root/children"]]];
[urlRequest setHTTPMethod:@"POST"];
[urlRequest setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
MSGraphDriveItem *driveItem = [[MSGraphDriveItem alloc] init];
[driveItem setName:@"New Folder"];
MSGraphFolder *folder = [[MSGraphFolder alloc] init];
[driveItem setFolder:folder];
[driveItem set@microsoft.graph.conflictBehavior:@"rename"];
NSError *error;
NSData *driveItemData = [driveItem getSerializedDataWithError:&error];
[urlRequest setHTTPBody:driveItemData];
MSURLSessionDataTask *meDataTask = [httpClient dataTaskWithRequest:urlRequest
completionHandler: ^(NSData *data, NSURLResponse *response, NSError *nserror) {
//Request Completed
}];
[meDataTask execute];
有关如何将 SDK 添加 到项目并 创建 authProvider 实例的 详细信息,请参阅 SDK 文档 。
GraphServiceClient graphClient = GraphServiceClient.builder().authenticationProvider( authProvider ).buildClient();
DriveItem driveItem = new DriveItem();
driveItem.name = "New Folder";
Folder folder = new Folder();
driveItem.folder = folder;
driveItem.additionalDataManager().put("@microsoft.graph.conflictBehavior", new JsonPrimitive("rename"));
graphClient.me().drive().root().children()
.buildRequest()
.post(driveItem);
有关如何将 SDK 添加 到项目并 创建 authProvider 实例的 详细信息,请参阅 SDK 文档 。
响应
如果成功,此方法将新创建的文件夹返回为 [DriveItem] 资源。
HTTP/1.1 201 Created
Content-Type: application/json
{
"createdBy": {
"user": {
"displayName": "Ryan Gregg",
"id": "309EC495-3E92-431D-9124-F0299633171D"
}
},
"createdDateTime": "2016-09-20T14:34:00Z",
"eTag": "343F1FBD-E9B3-4DDE-BCA7-D61AEAFF44E5,1",
"id": "ACEA49D1-1444-45A9-A1CB-68B1B28AE491",
"lastModifiedBy": {
"user": {
"displayName": "Ryan Gregg",
"id": "309EC495-3E92-431D-9124-F0299633171D"
}
},
"lastModifiedDateTime": "2016-09-20T14:34:00Z",
"name": "New Folder",
"parentReference": {
"driveId": "5FE38E3C-051C-4D55-9B83-8A437658275B",
"id": "E67A8F34-B0AA-46E1-8FF7-0750A29553DF",
"path": "/drive/root:/"
},
"size": 0,
"folder": {
"childCount": 0
}
}
错误响应
请参阅错误响应 ,详细了解错误返回方式。