You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用PHP Graph SDK在SharePoint指定路径创建文件夹

在指定路径的已存在文件夹内创建子文件夹(PHP Graph SDK)

要在指定文件夹而非根目录创建子文件夹,核心是修改请求的目标端点,将根目录定位替换为目标文件夹的定位,以下是两种常用实现方式:

方法一:直接通过文件夹路径创建

如果知道目标文件夹的完整路径(比如/Workspace/ProjectA),可以直接在Graph API的端点中用路径定位,无需额外获取文件夹ID:

$graph = new Graph();
$graph->setAccessToken($token);

// 替换为你的目标文件夹完整路径,格式为 /根目录下的层级路径/目标文件夹
$targetFolderPath = "/Workspace/ProjectA";
// 构造请求端点:root:/[目标路径]:/children
$requestUrl = "/me/drive/root:$targetFolderPath:/children";

$graph->createRequest("POST", $requestUrl)
    ->attachBody([
        "name" => "New Subfolder",
        "folder" => new stdClass(),
        "@microsoft.graph.conflictBehavior" => "rename" // 重名时自动添加后缀避免冲突
    ])->execute();

return $graph;

方法二:通过文件夹ID创建

如果需要频繁操作同一个文件夹,先获取目标文件夹的ID再发起请求会更高效:

步骤1:获取目标文件夹ID

$graph = new Graph();
$graph->setAccessToken($token);

$targetFolderPath = "/Workspace/ProjectA";
// 通过路径拉取文件夹详情,提取其中的ID字段
$folder = $graph->createRequest("GET", "/me/drive/root:$targetFolderPath")
    ->execute()
    ->getResponseBody();

$folderId = $folder['id'];

步骤2:用文件夹ID创建子文件夹

// 用获取到的folderId构造请求端点
$graph->createRequest("POST", "/me/drive/items/$folderId/children")
    ->attachBody([
        "name" => "New Subfolder",
        "folder" => new stdClass(),
        "@microsoft.graph.conflictBehavior" => "rename"
    ])->execute();

return $graph;

关键参数说明

  • @microsoft.graph.conflictBehavior可选值:rename(重名自动加后缀)、fail(重名返回错误)、replace(替换已有文件夹),可根据业务需求选择。
  • 确保当前token拥有目标文件夹的写入权限,且路径输入准确。

内容的提问来源于stack exchange,提问作者Aquiko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 05:15:10