多くのファイルを読み込んで、特定のテキストを検索する必要があります。私はテキストファイル、つまり画像、ムービーなどのファイルを開こうとしません。私は非テキストファイルを識別する方法を探しています。 FileStreamを使用してバイト検索を行うので、小数点の値が128より大きいバイトが検出された場合、ファイルの読み込みとクローズをやめることができます。これは良いアプローチのようですか?ファイルがCのテキストファイルでないかどうかを検出する方法#
答えて
これには絶対的な答えはありません。テキストファイルがASCII文字(かつASCII、UTF-8などでエンコードされている)であることがわかっている場合、それは動作します... すべてテキスト以外のファイルをキャッチできません。しかし
:
- それはまだいくつかの形式の有効なバイナリファイルであるファイルのために失敗したが、いずれも含まないことが起こる可能性があり、非ASCIIテキスト
- を使用して、任意のテキストファイルのため失敗します。 128より大きい値。
バイトシーケンス{34,87,23,10}は、テキストまたはバイナリデータを表しますか?確かに知る方法はない。 何でもあなたはヒューリスティックになります。
ファイルがプレーンなASCIIテキストでない場合、ファイルを失格としたい。フォルダ内のファイルは何でもかまいません。オープンするファイルの種類について高度な知識はありません。拡張子は信頼できません。ムービーファイルの拡張子は.txtです。 ASCII以外の文字に遭遇した場合、ファイルを拒否して次のファイルに移動する必要があるようです。それのどこが悪いんだい? –
@Bill:ファイルには何らかの形式のバイナリデータが残っていますが、127より大きいバイトは含まれていない可能性があるので...私は個人的に非ASCIIを失格とすることを躊躇します。もちろん、私はあなたの状況を知らない。これが結果を確認できるツールの場合には有用なヒューリスティックとして理にかなっていますが、その限界を*非常に*認識しておく必要があります。 –
これが自家製のアプリケーションであるかどうかは不明ですが、すばやく簡単な解決方法が必要です。
あなたはPath.GetExtension
string p = @"C:\Myfile.txt";
string e = Path.GetExtension(p);
if (e == ".txt")
{
//do stuff; process the file
}
の使用を作ることができそうであれば拡張データ型を決定しないことに注意してください。これは、拡張タイプがデータを表すことを保証できる場合にのみ有益です。
「.txt、.cvs」などのファイル拡張子を確認できますか?
事はあなたがエンコーディングを知っている必要があるとしているです: How can I detect the encoding/codepage of a text file
いいえ - 延長は保証しません。ファイルストリームで検索する場合、エンコーディングは関係ありません。 –
- 1. C#テキストファイル内で2つの文字列が同一であるかどうかを検出する方法
- 2. 行がC#で交差するかどうかを検出する方法は?
- 3. ファイルがPHPでファビコンであるかどうかを検出する方法は?
- 4. フォルダが空でないかどうかを検出する方法(Windowsバッチファイル)?
- 5. コメントのないc#.netのテキストファイル/ sqlファイルからどのようにキーワードを検索できますか?
- 6. Selenium C#Webdriverボタンがクリックされたかどうかを検出する方法
- 7. C# - ウェブサイトが訪問されたかどうかを検出する方法
- 8. Web要素が見えないかどうかを検出する方法は?
- 9. ポインタが粗いか細かいかどうかを検出する方法
- 10. Excelアドイン:ホストプラットフォームが「オフィスオンライン」かどうかを検出する方法
- 11. ドッカーコンテナがクラッシュしたかどうかを検出する方法
- 12. 複数のキーがC#フォームで押されているかどうかを検出する方法
- 13. テキストファイルがgeditで開いているかどうかを確認する方法
- 14. 跳躍動作の手が上を向いているかどうかを検出する方法(C#)Unity
- 15. 私のアプリケーションが閉じているかどうかを検出する方法
- 16. ファイルがバッチファイルで開いているかどうかを検出する
- 17. C#コードでCrystal Reports Basicがインストールされているかどうかを検出する方法
- 18. C#でハードウェアデバイスが動作しているかどうかを検出する
- 19. デバイスがlibgdxのAmazon kindleであるかどうかを検出する方法
- 20. ページがポストバックの結果であるかどうかを検出する方法
- 21. C#を使用するWindowsインストーラ4.5がインストールされているかどうかを検出する方法
- 22. FirefoxがC#からインストールされているかどうかを検出する方法は?
- 23. Zebraプリンタがインストールされているかどうかを検出する方法
- 24. メディアプレーヤーが動作しているかどうかを検出する方法
- 25. GameObject(C#)に近いプレイヤーがいるかどうかを検出する方法Unity5
- 26. ユーザーがファイルをダウンロードしたかどうかを検出する
- 27. テキストファイルがC#で特定のパスに生成されているかどうかを確認する方法
- 28. ユーザーがPHPでページを残すかどうかを検出する方法
- 29. スプライトが特定の間隔でタッチされていないかどうかを検出する方法
- 30. コンパイル時に型がshared_ptrであるかどうかを検出する方法
あなたは拡張子でファイルをフィルタすることはできますか? – Alex
は拡張機能ですか? .txt、.docなど? – WernerCD
あなたのユーザーは、中国語のように見えるときは簡単にテキストファイルではないことを伝えることができます。メッセージボックスに[はい/いいえ]を入力します。 –