如何使用Graph API替换OneDrive目录下的已有同名文件?
不需要提前删除目标路径下的原有文件,可直接在请求体中添加指定参数实现自动替换。
你收到nameAlreadyExists报错的原因是OneDrive Graph API执行文件移动、重命名操作时,默认的冲突处理策略为失败(fail),遇到目标路径存在同名文件时会直接终止操作返回错误。
你只需要在请求体中增加@microsoft.graph.conflictBehavior参数,即可自定义冲突处理逻辑,该参数支持三个取值:
replace:直接覆盖目标路径下的同名文件rename:自动为待移动的文件重命名(通常是加数字后缀),同时保留原有文件fail:默认值,遇到同名文件直接返回错误
修改后的代码示例如下:
var filebody = new { parentReference = new { id = folderDestId }, name = fileName, // 新增冲突处理参数,指定自动覆盖同名文件 @microsoft.graph.conflictBehavior = "replace" }; request.AddJsonBody(filebody); var response = client.Execute(request);
如果选择replace策略,原有同名文件会被直接永久覆盖,无法恢复,建议根据业务场景选择合适的冲突处理策略。
内容的提问来源于stack exchange,提问作者Kylie
相关产品推荐
相关产品推荐

