代码拉取完成,页面将自动刷新
package xcmd
import (
"strings"
)
// 获取文件类型
//
// path 文件路径
//
// uint8返回类型确定:
// 0-未知 1-目录 2-Linux可执行程序 3-Linux下超链接 4-Linux Socket文件 5-Windows 可执行程序
// 10-JPEG图片文件 11-PNG图片文件 12-WEBP格式图片 13-GIF格式图片 14-BMP位图 15-TIFF格式图片 19-未知格式图片文件
// 20-ASCII编码的文本文件 21-UTF-8编码的文本文件 29-未知格式文本文件
// 31-7Z压缩文件 32-ZIP压缩文件 39-未知压缩文件
// 41-PDF文档 42-Word文档 43-Excel文档 44-PPT文档
func File2type(path string) (uint8, error) {
if err := CheckCommand("file"); err != nil {
return 0, err
}
cmd, err := Exec(GetCommand("file"), path)
if err != nil {
return 0, err
}
cmd = strings.TrimSpace(strings.Split(cmd, ":")[1])
if cmd == "directory" {
return 1, nil
}
// 常见文件的类型
headers := map[string]uint8{
"ELF": 2, // Linux可执行程序
"symbolic link": 3, // Linux超链接
"socket": 4, // Linux Socket文件
"PE32": 5, // Windows 可执行程序
"JPEG": 10, // JPEG图片文件
"PNG": 11, // PNG图片文件
"GIF": 13, // GIF格式图片
"TIFF": 15, // TIFF格式图片
"ASCII": 20, // ASCII编码的文本文件
"UTF-8": 21, // UTF-8编码的文本文件
"7-zip": 31, // 7Z压缩文件
"Zip": 32, // ZIP压缩文件
"PDF": 41, // PDF文档
"Microsoft Word": 42, // Word文档
"Microsoft Excel": 43, // Excel文档
"Microsoft PowerPoint": 44, // PPT文档
}
for i, v := range headers {
if len(cmd) > len(i) && cmd[0:len(i)] == i {
return v, nil
}
}
// 不常见文件类型【依靠字符串搜索来确定是文本/图片等类型文件】
headers = map[string]uint8{
"text": 29, //文本文件
"image": 19, // 图片文件
"archive": 39, // 压缩文件
"Web/P image": 12, // WEBP格式图片
"PC bitmap": 14, // BMP位图
}
for i, v := range headers {
if strings.Contains(cmd, i) {
return v, nil
}
}
return 0, nil
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。