filetools/
lib.rs

1use std::fs::File;
2use std::{env};
3use std::path::Path;
4use std::io::{Write, BufReader, BufRead, Error,Read};
5const  CHUNKSIZE:usize= 8192;
6/*判断是文本文件还是二进制文件  ,true 文本文件 false 二进制文件*/
7pub fn is_binary_file(file_path :&str) -> Option<bool> {
8
9    let mut read_size =CHUNKSIZE;
10    let path = Path::new(&file_path);
11    let file_size =path.metadata().unwrap().len() as usize;
12    if read_size > file_size {
13        read_size =file_size;
14    }
15    
16    let mut buffer=[0;CHUNKSIZE];
17    let mut _inputfile = File::open(&file_path).unwrap();
18    _inputfile.read(&mut buffer).unwrap();
19    
20    //println!("buffer={:?}",buffer);
21 
22    let mut i=0;
23    while(i<read_size){
24        if (buffer[i]  ==0) {
25           return  Some(true);
26        }
27
28        i=i+1;
29    }
30
31
32    Some(false)
33
34}