ファイルがGZipプロトコルで圧縮されているかどうかを確認しようとしています。
コンセンサスは、ファイルの最初の2バイトを読み取り、それらがに等しいことを確認する必要があるということのよう0x1f8b
です。これがマジックナンバーとして知られていることを知りました。
どうすれば、できれば.Net / C#を使用して、ファイルの個々のバイトを読み取ることができますか?
ありがとうございました
ファイルがGZipプロトコルで圧縮されているかどうかを確認しようとしています。
コンセンサスは、ファイルの最初の2バイトを読み取り、それらがに等しいことを確認する必要があるということのよう0x1f8b
です。これがマジックナンバーとして知られていることを知りました。
どうすれば、できれば.Net / C#を使用して、ファイルの個々のバイトを読み取ることができますか?
ありがとうございました
あなたはこれを試すことができます...
vに別の変数タイプを使用する必要がある場合があります。または、intを変換することもできます。
using (BinaryReader b = new BinaryReader(File.Open("file.bin", FileMode.Open)))
{
int v = b.ReadByte();
Console.WriteLine(v);
}
ファイルの2(最初の)バイトを読み取る最も簡単な方法は、FileStreamを開いてから、2バイトだけを読み取ることです。
FileStream fs = new FileStream( "D:\\path_to_file\file.ext", FileMode.Open);
int value = fs.ReadByte();
...
もちろん、ファイルが存在するかどうかを確認し、アプリがファイルを読み取るのに十分な権限で実行されていない場合は例外をキャッチし、終了したらストリーム(ファイルへのアクセス)を閉じます...
Read
FileStreamのメソッド(一度に多くのバイトを読み取ることができる)を使用する方が便利な場合があります。このメソッドに相当する非同期の方法も利用できることに注意してください。
通常、一般的なx86では、charは1バイト長のデータ型であるため、ファイルの最初の2文字を読み取ってもかまいません。