ストリームをバイトに変換する方法を知りたいです。
私はこのコードを見つけましたが、私の場合は機能しません:
var memoryStream = new MemoryStream();
paramFile.CopyTo(memoryStream);
byte[] myBynary = memoryStream.ToArray();
myBinary = memoryStream.ToArray();
しかし、私の場合、行paramFile.CopyTo(memoryStream)では何も起こらず、例外もありません。アプリケーションは引き続き動作しますが、コードは次の行に続きません。
ありがとう。
ファイルを読み取る場合は、 File.ReadAllBytes Method を使用するだけです。
byte[] myBinary = File.ReadAllBytes(@"C:\MyDir\MyFile.bin");
また、sourceStreamがLengthプロパティをサポートしている限り、バイト配列を取得するためだけにMemoryStreamをコピーする必要はありません。
byte[] myBinary = new byte[paramFile.Length];
paramFile.Read(myBinary, 0, (int)paramFile.Length);
これは、Streamクラス用に作成した拡張メソッドです
public static class StreamExtensions
{
public static byte[] ToByteArray(this Stream stream)
{
stream.Position = 0;
byte[] buffer = new byte[stream.Length];
for (int totalBytesCopied = 0; totalBytesCopied < stream.Length; )
totalBytesCopied += stream.Read(buffer, totalBytesCopied, Convert.ToInt32(stream.Length) - totalBytesCopied);
return buffer;
}
}