0

ファイルがGZipプロトコルで圧縮されているかどうかを確認しようとしています。

コンセンサスは、ファイルの最初の2バイトを読み取り、それらがに等しいことを確認する必要があるということのよう0x1f8bです。これがマジックナンバーとして知られていることを知りました。

どうすれば、できれば.Net / C#を使用して、ファイルの個々のバイトを読み取ることができますか?

ありがとうございました

4

3 に答える 3

2

あなたはこれを試すことができます...

vに別の変数タイプを使用する必要がある場合があります。または、intを変換することもできます。

using (BinaryReader b = new BinaryReader(File.Open("file.bin", FileMode.Open)))
{
    int v = b.ReadByte();
    Console.WriteLine(v);
}
于 2012-09-06T16:55:32.350 に答える
1

ファイルの2(最初の)バイトを読み取る最も簡単な方法は、FileStreamを開いてから、2バイトだけを読み取ることです。

FileStream fs = new FileStream( "D:\\path_to_file\file.ext", FileMode.Open);
int value = fs.ReadByte();
...

もちろん、ファイルが存在するかどうかを確認し、アプリがファイルを読み取るのに十分な権限で実行されていない場合は例外をキャッチし、終了したらストリーム(ファイルへのアクセス)を閉じます...

ReadFileStreamのメソッド(一度に多くのバイトを読み取ることができる)を使用する方が便利な場合があります。このメソッドに相当する非同期の方法も利用できることに注意してください。

于 2012-09-06T16:49:51.897 に答える
0

通常、一般的なx86では、charは1バイト長のデータ型であるため、ファイルの最初の2文字を読み取ってもかまいません。

于 2012-09-06T16:49:45.950 に答える