猿问

使用特殊字符更新 DriveItem 会返回错误

我正在尝试更新驱动器项的父引用,其中驱动器项的名称或包含特殊字符的新父路径(%25例如),并且新父项和项位于同一组和驱动器中。


当新的父路径包含这些字符时,我收到无效请求异常。


当更新驱动器项目的名称包含这些字符时,我会收到“未找到项目”异常,但在25从项目名称中删除后,该项目被移动到目的地。


除了这两种情况外,我的代码工作正常。


这是我尝试做的:


destinationPath = Uri.EscapeDataString(destinationPath);


var destination = await client

    .Groups[groupId]

    .Drives[driveId]

    .Root

    .ItemWithPath(destinationPath)

    .Request()

    .GetAsync();


DriveItem newItem = new DriveItem {

    ParentReference = new ItemReference { Id = destination.Id }

};


sourcePath = Uri.EscapeDataString(sourcePath);


var movedItem = await client

    .Groups[groupId]

    .Drives[driveId]

    .Root

    .ItemWithPath(sourcePath)

    .Request()

    .GetAsync();


var result = await client

    .Groups[groupId]

    .Drives[driveId]

    .Items[movedItem.Id]

    .Request()

    .UpdateAsync(newItem);


料青山看我应如是
浏览 158回答 1
1回答

动漫人物

OneDrive 不支持%(或其他几个特殊字符)在文件名或路径名中。这与 Microsoft Graph 无关,它们不受 OneDrive 本身(或许多与此相关的文件系统)的支持。从OneDrive、OneDrive for Business 和 SharePoint 中的无效文件名和文件类型:OneDrive、Office 365 上的 OneDrive for Business 和 SharePoint Online 中的文件和文件夹名称中不允许使用的字符:&nbsp;" * : < > ? / \ |SharePoint Server 2013 上的 OneDrive for Business 文件和文件夹名称中不允许使用的字符:&nbsp;~ " # % & * : < > ? / \ { | }.
随时随地看视频慕课网APP
我要回答