[英]how to identify a file is a text file or other using c#.net
我需要将文件作为文本文件访问,并希望稍后进行处理。 但是在获取它之前,如何识别正在提取的文件只是一个文本文件。 如果文件是另一种格式,我的整个代码将被错误地解释。 我只想访问和处理文本文件。
目前我正在使用:
StreamReader objReader = new StreamReader(filePath);
如何在C#.NET中这样做?
好吧,您可以应用启发式方法:
但这基本上都是启发式的。 归根结底,文件是一个名称和一些字节,以及一些有关访问权限的元数据。 在某些文件系统中,可能会有更多的元数据可用,但是通常很难获取,并且在复制文件时通常不保留元数据-因此,不应依赖于此。
如果要获取文件扩展名,可以使用
如果文件是另一种格式,我的整个代码将被错误地解释。
当然,如果您期望一个文本文件并最终得到一个二进制文件,则您的代码将错误地解释它。 但是,对于任何无效的文本文件来说,情况也是如此:如果您期望的那样用逗号分隔,该怎么办? 还是不是json,这就是您想要的? 或者是您无法处理的编码?
关键是,除非您只是复制文本或对其进行非常低级的操作,否则无论是文本还是二进制文件,您都需要进行更多的检查。 您应该(可能)检查整个文件是否符合您的需求。 这也将捕获传递到程序中的所有非文本文件!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.