C# - CSOM - 将文件上传到 Sharepoint Online 中的子目录

C# - CSOM - Upload a file to a subdirectory in Sharepoint Online

我正在尝试将文件上传到 SharePoint Online,我得到了这个示例代码:

var uploadFile = list
            .RootFolder
            .Folders
            .GetByPath(ResourcePath.FromDecodedUrl("A"))
            .Files
            .Add(newFile);

ctx.Load(uploadFile);
await ctx.ExecuteQueryAsync();

它工作得很好,所以它周围的一切都工作。但显然这个片段

var uploadFile = list
            .RootFolder
            .Folders
            .GetByPath(ResourcePath.FromDecodedUrl("A/B"))
            .Files
            .Add(newFile);

ctx.Load(uploadFile);
await ctx.ExecuteQueryAsync();

抛出 System.IO.DirectoryNotFoundException 即使两个目录都存在。那么如何将文件上传到子目录“B”?

尝试像这样上传文件:

 public static void UploadFile(ClientContext context,string uploadFolderUrl, string uploadFilePath)
{
    var fileCreationInfo = new FileCreationInformation
    {
            Content = System.IO.File.ReadAllBytes(uploadFilePath),
            Overwrite = true,
            Url = Path.GetFileName(uploadFilePath)
    };
    var targetFolder = context.Web.GetFolderByServerRelativeUrl(uploadFolderUrl);
    var uploadFile = targetFolder.Files.Add(fileCreationInfo);
    context.Load(uploadFile);
    context.ExecuteQuery();
}

using (var ctx = new ClientContext(webUri))
{
     ctx.Credentials = credentials;

     UploadFile(ctx,"LibName/FolderName/Sub Folder Name/Sub Sub Folder Name/Sub Sub Sub Folder Name",filePath);   
}

请在此处查看另一个类似的帖子: