アクセストークンを使用してZipファイルをDropboxにアップロードしようとしています。コードの下には解凍したファイルのために動作します:C#を使用してZipファイルをDropboxにアップロード
private static async Task FileUploadToDropbox(string filePath, string fileName, byte[] fileContent)
{
var client = new DropboxClient("Access Token");
const int chunkSize = 1024;
using (var stream = new MemoryStream(fileContent))
{
int numChunks = (int)Math.Ceiling((double)stream.Length/chunkSize);
byte[] buffer = new byte[chunkSize];
string sessionId = null;
for (var idx = 0; idx < numChunks; idx++)
{
var byteRead = stream.Read(buffer, 0, chunkSize);
using (MemoryStream memStream = new MemoryStream(buffer, 0, byteRead))
{
if (idx == 0)
{
var result = await client.Files.UploadSessionStartAsync(body: memStream);
sessionId = result.SessionId;
}
else
{
UploadSessionCursor cursor = new UploadSessionCursor(sessionId, (ulong)(chunkSize * idx));
if (idx == numChunks - 1)
{
await client.Files.UploadSessionFinishAsync(cursor, new CommitInfo(filePath + "/" + fileName), memStream);
}
else
{
await client.Files.UploadSessionAppendV2Async(cursor, body: memStream);
}
}
}
}
}
}
しかし、私はこのコードを使用してZIPファイルをアップロードしようとすると、それはDropboxに空のZIPファイルをアップロードします。 zipファイルをバイト配列として読み込み、上記のメソッドに渡しています。ファイルのサイズは変わりませんが、ファイルをダウンロードして解凍しようとすると、圧縮されたファイルが空であると表示されます。
@Akshay、それが他の人にも役立つように、それが有用なものとしてそれをマークするとわかります。 –
「ストリームでは読み込みがサポートされていません」という例外が発生しています。あなたのコードを使って。 – Akshay