请问如何识别一个文件是否为文本文件?

pipimei 2000-08-29 11:43:00
请问如何识别一个文件是否为文本文件?50分送上!
...全文
197 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Icebird 2000-11-09
  • 打赏
  • 举报
回复
用TStrings.LoadFromFile()去装载文本文件,再判断取出的内容大小与源文件的大小,就可知道此文件是否是文本文件了
Kingron 2000-11-09
  • 打赏
  • 举报
回复
判断一下回车换行就可以了,因为文本文件回车换行是在一起的。0D后面是0A的话,就是文本文件!例程就不写了吧?
pipimei 2000-08-30
  • 打赏
  • 举报
回复
我比较同意SoftSprite的说法,但似乎又不够精确。如果头1k里头没有不可显示的字符,就一定能判断不是文本文件吗?
如果按qxp的说法,岂不是要遍历所有的字节吗?如果文件很大,花的时间不少。
请各位继续发表高见,谢谢。
nitrogen 2000-08-30
  • 打赏
  • 举报
回复
我觉得没什么特别好的办法, 随机取一些字节出来判断应该比只判断头1K好一些. 好象UNIX中的
test -t也是这么实现的.
hfyun 2000-08-30
  • 打赏
  • 举报
回复
关注.
U皮特U 2000-08-29
  • 打赏
  • 举报
回复
读取文件头1K字节,判断其中是否有不可显示字符(<0x20),如果有则不是文本文件。
qxp 2000-08-29
  • 打赏
  • 举报
回复
其实这个问题很简单.
文本文件是一种标准信息交换文件,即文本文件可以在不同的系统中用打开文本的工具都可以
阅读,就象.jpg都可以用看图的软件打开一样.
理解了这一点,我们可以知道所谓文本文件,就是由也仅由可显示的ASCII码组成的文件;
所以,识别它的方法就是判断所有的字节是否是可显示的ascii码.
U皮特U 2000-08-29
  • 打赏
  • 举报
回复
取扩展名大大的不行,如果将command.com改名为command.txt,是否能说这个文件是文本文件呢?
Slash 2000-08-29
  • 打赏
  • 举报
回复
用API函数取它的扩展名不就行了!

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧