如何在 C# 中检查内容类型/应用程序文本
Posted
技术标签:
【中文标题】如何在 C# 中检查内容类型/应用程序文本【英文标题】:how to check content-type/application text in c# 【发布时间】:2012-08-13 14:53:45 【问题描述】:我使用此代码检查内容类型:
字符串文件大小 = FileUpload1.PostedFile.ContentType;
但如果我将其他文件保存为 .txt 格式,则表示允许。
在c#中如何检查原始文本文件
【问题讨论】:
请改写你的问题,这没有意义,我也不能说问题出在哪里。 【参考方案1】:试试这个(从similar question得到它):
string contentType = FileUpload1.PostedFile.ContentType
【讨论】:
【参考方案2】:如果我了解您的问题,您正在寻找验证发布的文件类型。如果是这样,那么您可以检查文件扩展名。
if(FileUpload1.PostedFile.FileName.ToLowerInvariant().EndsWith(".txt"))
// Do stuffs
更新 cmets:如果文件出现故障,则可以使用以下方法验证是否为二进制文件;如果不是,您可以将其视为文本文件。好吧,为了使用这种方法,您需要临时保存文件或需要更改方法以便它可以直接从流中读取。
注意:此方法不能为您提供 100% 准确的结果。但是,您可以预期 70-80%。这是这段代码的source link。
private bool IsBinaryFile(string filePath, int sampleSize = 10240)
if (!File.Exists(filePath))
throw new ArgumentException("File path is not valid", filePath);
var buffer = new char[sampleSize];
string sampleContent;
using (var sr = new StreamReader(filePath))
int length = sr.Read(buffer, 0, sampleSize);
sampleContent = new string(buffer, 0, length);
//Look for 4 consecutive binary zeroes
if (sampleContent.Contains("\0\0\0\0"))
return true;
return false;
【讨论】:
是的,我也检查了文件扩展名,但我需要检查文件内容类型是否为文本.. bcoz 假设我更改了其他文件并保存了 .txt 格式知道.. 这就是我需要检查的原因内容 在这种情况下,您是否要从文件中查找任何特定文本? 是的,我只上传了 txt 格式的文件,只是假设有人编辑了另一个文件并保存为 .txt 文件,知道那个时候我需要给出错误消息 ..以上是关于如何在 C# 中检查内容类型/应用程序文本的主要内容,如果未能解决你的问题,请参考以下文章