如何获取文件类型信息(而不是文件状态信息)?
::fileutil::magic::filetype 是在Tcl(Tcllib)中当前可用的跨平台最佳方法吗,用以获取接近文件管理器“类型”列所显示的文件类型描述?
起初,它似乎能为人类读者提供有用的信息,但输出会因类型而异,导致很难用于程序化处理。不过,我之前并没有正确理解它。
看起来一个简单的 lindex [fileutil::magic::filetype $file] 0 0 提供了充分的信息。
解决方案
操作系统本身并不识别类型,在那一层它们仅仅是字节。在上一层,桌面环境可能会把一种类型与文件后缀或扩展名相关联,或者把打开该文件的命令相关联。
在Windows中,命令 assoc 可以返回与扩展名相关联的完整名称,你需要解析输出。命令 ftype 可以返回创建该文件的命令,但可能并不存在这样的命令。
在Unix、Linux和 macOS上,命令 file 会执行测试以尝试识别文件类型。它的移植性最好,但Windows上并不包含。可以安装Windows版本、Cygwin工具,以及微软的新Linux风格工具集,应该也会包含它们。
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。