bool GzipTrue( string filepath )
{
FILE *infile;
unsigned char buf[3] ={'\0'};
infile = fopen(filepath.c_str(), "rb");
int rc = fread(buf,sizeof(unsigned char), 2,infile);
fclose(infile);
if (buf[0] == 31 && buf[1] == 139)
{
return true ;
}
else
{
return false ;
}
}
C++ 代码,不需要看后缀,就能判断是否为压缩文件。
写一个对应的rust版本的函数
use std::fs::File;
use std::io::{self, Read};
fn gzip_true(filepath: &str) -> io::Result<bool> {
let mut infile = File::open(filepath)?;
let mut buf = [0u8; 2];
infile.read_exact(&mut buf)?;
Ok(buf[0] == 31 && buf[1] == 139)
}
网友评论