我正在创建一个Web应用程序,我想将现有文件从驱动器上载到按语法创建的onedrive文件夹中。我遵循了link中的上载示例,但是尽管我能够使用driveitem对象创建文件夹,但是我无法创建文件并上载其中的现有文件内容。
DriveItem file = new DriveItem()
{
File = new Microsoft.Graph.File(),
Name = "abc.txt",
};
var freq = graphClient
.Me
.Drive
.Items[parentFolder.Id]
.Request();
byte[] data =
System.IO.File.ReadAllBytes(@"C:\Users\Desktop\testfile.txt");
DriveItem uploadedFile = null; MemoryStream stream = null;
using (stream = new MemoryStream(data))
{
file.Content = stream;
stream.Position = 0;
}
var req = graphClient
.Me
.Drive.Items[parentFolder.Id]
.Content
.Request();
try
{
uploadedFile = await req.PutAsync<DriveItem>(stream);
}
catch (Exception ex)
{
}
但是此代码不会创建文件,也不会更新我使用driveitem对象创建的文件中的内容。
答案 0 :(得分:0)
以下端点演示了如何替换现有文件:
PUT /me/drive/items/{item-id}:/{path-to-file}/content
其中item-id
指的是具有文件夹构面的DriveItem
C#示例
var path = @"C:\Sample.docx";
var bytes = System.IO.File.ReadAllBytes(path);
var stream = new MemoryStream(bytes);
var driveItem = await graphClient.Me
.Drive
.Items[folderItemId]
.ItemWithPath(System.IO.Path.GetFileName(path))
.Content
.Request()
.PutAsync<DriveItem>(stream);