疑惑,如何判断一个文件是二进制文件,还是文件文件?

haogong 2003-08-30 04:43:56

是这样的,我要判断一个文件,如果是文本文件,就要把里面的 \r\n 替换成 \n,
如果不是文件,比如是图片,那我这样替换就不对了,会损坏图片的。

怎么做呢?谢谢
...全文
357 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
bcpl 2003-08-30
  • 打赏
  • 举报
回复
如果是Unicode格式的文本文件,无法用有无0来判断。另外很多文本文件都有制表符(ascii码9)
sjd163 2003-08-30
  • 打赏
  • 举报
回复
简单的做法,检查文件当中是否0,有则是二进制文件,而文本文件则绝对不会。
luolovegui 2003-08-30
  • 打赏
  • 举报
回复
大家的方法都不错,要是你还要懒一点的话,就看扩展名了,当然不是很好.
wangjidh 2003-08-30
  • 打赏
  • 举报
回复
先取出100个字符,然后判断有没有不能显示的ASCII码,如果有,一般都不是文本文件
haogong 2003-08-30
  • 打赏
  • 举报
回复
谢谢 happy__888([顾问团]寻开心)
cnpr 2003-08-30
  • 打赏
  • 举报
回复
http://eaoo.com/design/list.asp?classid=2&Nclassid=13
寻开心 2003-08-30
  • 打赏
  • 举报
回复
简单的做法,检查文件当中是否包含ASCII 0,
如果是二进制文件%90以上都会包含它的,而文本文件则绝对不会。

安全的做法是把所有的ASCII小于128的非文本的字符列出来,查找文件当中是否包含了这些字母,文本文件当中包含的字母最小的就是回车和换行符号0x0d和0x0a

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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