skilllite_fs/util.rs
1//! 通用工具:is_likely_binary, matches_glob
2
3use std::path::Path;
4
5use crate::read_write;
6
7/// 检测文件是否可能为二进制(前 512 字节含 null)
8pub fn is_likely_binary(path: &Path) -> bool {
9 if let Ok(buf) = read_write::read_bytes_limit(path, 512) {
10 return buf.contains(&0);
11 }
12 true
13}
14
15/// 简单 glob 匹配:支持 *.ext 或精确文件名
16pub fn matches_glob(name: &str, pattern: &str) -> bool {
17 if let Some(ext) = pattern.strip_prefix("*.") {
18 name.ends_with(&format!(".{}", ext))
19 } else {
20 name == pattern
21 }
22}