我需要将文件作为文本文件访问,并希望稍后处理它。但在我获取它之前,我如何识别我正在采取的文件只是一个文本文件。如果文件是另一种格式,我的整个代码会错误地解释。我想访问和处理只有文本文件。
目前我正在使用:
StreamReader objReader = new StreamReader(filePath);
我怎样才能在C#.NET中这样做?
答案 0 :(得分:2)
嗯,你可以申请一些启发式方法:
但基本上它都是启发式的。在一天结束时,文件是名称和一些字节,以及有关访问权限的一些元数据。在某些文件系统中,可以有更多可用的元数据,但是在复制文件时通常很难获得并且通常不会保留 - 因此不应该依赖于此。
答案 1 :(得分:0)
如果您想获得文件的扩展名,可以使用
答案 2 :(得分:0)
如果文件是另一种格式,我的整个代码会错误地解释。
当然,如果您期望文本文件并最终获得二进制文件,您的代码将错误地解释它。但是对于任何无效的文本文件也是如此:如果你期望它不是逗号分隔的话怎么办?或者不是json,那就是你想要的?或者是你无法处理的编码?
关键是,除非你只是复制文本或用它做一些非常低级的东西,否则你需要比文本和二进制更多的检查。你应该(可能)检查整个文件是否符合你的需要。这将捕获传入您的程序的任何非文本文件!