-4

次のコードを記述した後、型 'int' を 'byte' に暗黙的に変換できません。明示的な変換が存在します (キャストがありませんか?)

FileStream MyFileStream = new FileStream(fileName, FileMode.Open);
long FileSize;
FileSize = MyFileStream.Length;
byte[] Buffer = new byte[] { (((int)(FileSize)) - 1) };

この問題を解決するのを手伝ってください。ありがとう。

解決策:(pswgに感謝)

byte[] Buffer = new byte[FileSize];

問題を解決しました。pswg が示唆したように、 を使用するために値を 4096 に変更しましたMemoryStream

4

2 に答える 2

4

size のバイト配列を初期化しようとしているようですFileSize。必要な構文は次のとおりです。

byte[] Buffer = new byte[FileSize - 1];

ただし、実際には、ファイルより 1 バイト短いバッファーが作成されます。おそらくこれを行うつもりでした:

byte[] Buffer = new byte[FileSize];

もちろん、ほとんどの場合、ファイル全体をバッファリングする必要はありません。そうしないと、バッファと呼ばれません。本当に必要な場合を除き、バッファ サイズをより控えめな値 (たとえば 4096) に抑えるか、MemoryStream代わりに a に読み込むことをお勧めします。

参考文献

于 2013-07-23T06:04:41.260 に答える
0

これを試してください:->

byte[] Buffer = BitConverter.GetBytes(FileSize-1);
            Array.Reverse(Buffer);
            byte[] result = Buffer;
于 2013-07-23T06:08:15.417 に答える