我正在尝试确定文件是否已使用GZip协议进行压缩。
共识似乎是我需要读取文件的前两个字节,并检查它们是否等于0x1f8b
。我刚刚得知这是一个神奇的数字。
我如何,最好使用.Net / C#,因为这是我习惯的,读取文件的各个字节?
三江源
答案 0 :(得分:2)
您可能需要为v使用不同的变量类型,或者您可以转换int ...
using (BinaryReader b = new BinaryReader(File.Open("file.bin", FileMode.Open)))
{
int v = b.ReadByte();
Console.WriteLine(v);
}
答案 1 :(得分:1)
读取文件的两个(第一个)字节的最简单方法是打开FileStream然后只读取两个字节:
FileStream fs = new FileStream( "D:\\path_to_file\file.ext", FileMode.Open);
int value = fs.ReadByte();
...
当然你应该检查文件是否存在,如果app没有运行时有足够的权限来读取文件,请抓住异常,当你完成它时关闭流(访问文件)......
使用FileStream的Read
方法(允许您一次读取多个字节)可能更方便。请注意,此方法也有异步等效。
答案 2 :(得分:0)
通常在x86中,char是一个字节长的数据类型,因此读取文件的前两个字符就可以了。