0

GoogleDrive API を使用して、大きなファイル (1 GB 以上) を Google ドライブにアップロードしようとしています。私のコードは、小さなファイルで問題なく動作します。しかし、より大きなファイルになるとエラーが発生します。

ファイルをbyte[]に変換するコード部分でエラーが発生します。

byte[] data = System.IO.File.ReadAllBytes(filepath); 

ここでメモリ不足の例外がスローされます。

4

1 に答える 1

5

おそらくあなたはdevelopers.googleの提案に従い、これを行っています

byte[] byteArray = System.IO.File.ReadAllBytes(filename);
MemoryStream stream = new MemoryStream(byteArray);
try {
  FilesResource.InsertMediaUpload request = service.Files.Insert(body, stream, mimeType);
  request.Upload();

ファイル全体をバイト配列に入れてから作成することを提案する理由がわかりませんMemoryStream。より良い方法はこれだと思います:

using(var stream = new System.IO.FileStream(filename,
                                            System.IO.FileMode.Open, 
                                            System.IO.FileAccess.Read))
{
    try 
    {
       FilesResource.InsertMediaUpload request = service.Files.Insert(body, stream, mimeType);
       request.Upload();
       .
       .
       .
}
于 2015-10-07T13:24:44.163 に答える