[英]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.