title author date CreateTime categories
C#判断文件属于文本或二进制
lindexi
2019-09-02 12:57:37 +0800
2018-2-13 17:23:3 +0800
C#

其实标题说错了,所有的文件储存都是二进制,但我们想区别的是那些可以当做文本来读的,如 .txt,.cs,.c 的文件和一般的不是文字的文件。
我们有什么办法可区分文件是文本或二进制?

于是我找到下面的文章,发现了好多个方法。

http://stackoverflow.com/questions/567757/how-do-i-distinguish-between-binary-and-text-files

http://magic.codeplex.com/

https://stackoverflow.com/questions/4744890/c-sharp-check-if-file-is-text-based

https://stackoverflow.com/questions/910873/how-can-i-determine-if-a-file-is-binary-or-text-in-c

http://blog.csdn.net/cherylnatsu/article/details/6412898

最后发现Git的方法是判断一个文件中是否存在 '\0' 如果存在,那么判断为二进制,不是文本,当然对于 Utf-16 这个方法容易就炸了,显然没有一个好用的方法。

我在项目:https://github.com/lindexi/EncodingNormalior 遇到这个问题,我希望让用户自己添加规则,如果遇到规则之外的,那么判断使用上面的检测 '\0' 方法,当然,遇到了 Utf-16 编码,还是没有发现好的解决办法。

另外还发现一个判断文件的方法是读文件的前两个字节,但是这个方法很多都无法判断。

在C#中如何确定一个文件是不是文本文件,以及如何确定一个文件的类型

2019-9-2-C#判断文件属于文本或二进制的更多相关文章

  1. C语言-EOF和feof()判断文件结尾的区别

    今天获取一个图片内容时, fopen("aaaaaa.png", "r"), 读取完文件头就停止了, 后来模式改为 "rb" 就可以了, 特 ...

  2. servlet操作本地文件汇总: 判断文件是否存在;文件重命名;文件复制; 获取文件属性信息,转成Json对象; 获取指定类型的文件; 查找替换.txt中的文本

    package servlet; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; ...

  3. C#中判断文件夹中存在某个txt文本

    strFileName="D:\\strarray.txt"; if (File.Exists(strFileName))//判断文件是否存在 { }

  4. JAVA之旅(二十八)——File概述,创建,删除,判断文件存在,创建文件夹,判断是否为文件/文件夹,获取信息,文件列表,文件过滤

    JAVA之旅(二十八)--File概述,创建,删除,判断文件存在,创建文件夹,判断是否为文件/文件夹,获取信息,文件列表,文件过滤 我们可以继续了,今天说下File 一.File概述 文件的操作是非常 ...

  5. C# 下载文件 删除文件 写入文本

    由于经常用到文件处理,便自己封装了下 分享给大家. 包含写入文本  批量删除文件  下载文件 .--可直接使用 /// <summary> /// 写入到txt /// </summ ...

  6. centos shell脚本编程1 正则 shell脚本结构 read命令 date命令的用法 shell中的逻辑判断 if 判断文件、目录属性 shell数组简单用法 $( ) 和${ } 和$(( )) 与 sh -n sh -x sh -v 第三十五节课

    centos   shell脚本编程1 正则  shell脚本结构  read命令  date命令的用法  shell中的逻辑判断  if 判断文件.目录属性  shell数组简单用法 $( ) 和$ ...

  7. 转载 - C++ - 关于ifstream/fstream流 判断文件是否结束eof()的问题

    出处:http://blog.csdn.net/shuilan0066/article/details/4669451 在做实验的时候遇到这个问题,找原因的时候发现出处除了讲明原因,还举了例子,所以记 ...

  8. 使用apache.tika判断文件类型

    一. 判断文件类型一般可采用两种方式 1. 后缀名判断 简单易操作,但无法准确判断类型 2. 文件头信息判断 通常可以判断文件类型,但有些文件类型无法判断(如word和excel头信息的前几个字节是一 ...

  9. NX二次开发-UFUN判断文件是否存在UF_CFI_ask_file_exist

    #include <uf.h> #include <uf_ui.h> #include <uf_cfi.h> UF_initialize(); //判断文件是否存在 ...

随机推荐

  1. C++之constexpr

    一.常量表达式:是指值不会改变并且在编译过程就能得到计算结果的表达式.一个对象是不是常量表达式是由它的数据类型和初始值共同决定. ;//虽然初始值是字面值常量,但是它的数据类型只是普通int. con ...

  2. leetcode-157周赛-5216-统计元音字母序列的数目

    题目描述: 方法:倒推 class Solution(object): def countVowelPermutation(self, n): MOD = 10 ** 9 + 7 a=e=i=o=u= ...

  3. DDOS 单例

    DDOS.H #pragma once //g++ ../../../Main.cpp ../../../DDOS.cpp -lpthread #include <stdio.h> #in ...

  4. 1002CSP-S模拟测试赛后总结

    晚上 我死了.T1全场AC只有我爆零了?? 还非常中二地写了个代码注释: 水题不假,但你不知道题水你更水么?? 碰到简单题就掉以轻心??还告诉自己不要掉以轻心…… 这下是真的滑天下之大稽了吧. 读题不 ...

  5. 实时检测网络状态及是否可以连接Internet

    using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ...

  6. 在Laravel5.4中自动加载自定义文件

    目标:想要在TestController.php中使用自定义的/app/Common/test.php中的test()函数. 1.在app文件夹下创建文件app/Common/test.php,文件内 ...

  7. quartz的job中注入spring对象!

    一般情况下,quartz的job中使用autowired注解注入的对象为空,这时候我们就要使用spring-quartz提供的AdaptableJobFactory类. 自定义一个类: public  ...

  8. Hibernate数据保存操作方法的原理对比

    Interface Session All Superinterfaces: Serializable All Known Subinterfaces: EventSource, Session Al ...

  9. Quartz 定时任务配置(spring中)

    <!-- Quartz -->    <bean name="task" class="com.geostar.geosmarter.nodemanag ...

  10. this关键字、static关键字、block块、封装类以及继承、import、修饰符的初步了解

    this关键字 定义 在类的方法定义中使用this关键字代表使用该方法的引用. this即"自己",代表对象本身,谁调用代表谁.在成员方法中或构造器中隐式的传递. this的两种用 ...