如何在c#中检查内容类型/应用程序文本

时间:2012-08-17 06:49:05

标签: c#

我使用此代码检查内容类型:

string fileSize = FileUpload1.PostedFile.ContentType;

但如果我用.txt格式保存另一个文件意味着,它将被允许。

如何在c#

中检查原始文本文件

2 个答案:

答案 0 :(得分:0)

如果我了解您的问题推进,您正在寻找验证发布的文件类型。如果是,那么您可以检查文件扩展名。

if(FileUpload1.PostedFile.FileName.ToLowerInvariant().EndsWith(".txt"))
{
     // Do stuffs
}
评论的

更新:如果文件出现故障,您可以使用以下方法验证它是否是二进制文件;如果没有,你可以将其视为文本文件。好吧,为了使用这种方法,你需要暂时保存文件或者需要改变方法,以便它可以直接从流中读取。

注意:此方法不会给您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;
}

答案 1 :(得分:0)

试试这个(从similar question获得):

string contentType = FileUpload1.PostedFile.ContentType