2012-08-17 71 views
0

我使用此代碼用於檢查內容類型內容類型/應用文本:如何檢查在c#

串檔案大小= FileUpload1.PostedFile.ContentType;

但如果我保存在.txt格式的其他文件的手段,它將被允許。

如何將檢查在C#

+0

請改寫你的問題,它是沒有意義的,我不能說問題出在哪裏。 – 2012-08-17 06:58:34

回答

0

的原單文本文件或不是如果我理解你的問題propelry,你正在尋找驗證發佈的文件類型。如果是這樣,那麼你可以檢查文件擴展名。

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; 
} 
+0

雅我也檢查了文件擴展名,但我需要檢查文件內容類型是文本還是不.. bcoz假設我改變了其他文件並保存.txt格式知道..那就是爲什麼我需要檢查內容 – Ramesh 2012-08-17 07:02:32

+0

在這種情況下,是你正在尋找文件中的任何特定文本? – NaveenBhat 2012-08-17 07:15:22

+0

是我只上傳了txt格式的文件,只能假設有人編輯另一個文件並保存爲.txt文件知道那個時候我需要給出錯誤信息。 – Ramesh 2012-08-17 07:22:24