0

C#アプリケーションでCSVファイルを読み取るためにA FastCSVReaderライブラリを使用しています。CsvReaderただし、オブジェクトの作成に問題があります。

CsvReader csv = new CsvReader(new StreamReader("data.csv"), true));

バイナリファイルをこのコードに渡す場合、例外はスローされず、入力ファイルは通常のCSVファイルとして扱われます。指定されたファイルがCSVファイルであるかどうかをどのように検出できますか?または、少なくとも、それがバイナリファイルではないことを確認するにはどうすればよいですか?

4

1 に答える 1

1

ファイルがテキストであるかバイナリであるかを検出するの困難です。また、テキストファイルの大部分もCSVではないことも当然のことです。そのため、この検証が価値があるかどうか疑問に思います。

CSVリーダーがごみの入力を検出できない場合(おそらく、構築時ではなく解析を開始したとき)、別の実装を検討します。選択できる負荷があります。

.netで利用できるものは次のとおりです。

参照し、 TextFieldParserMicrosoft.VisualBasicを使用できます

using (var parser =
    new TextFieldParser(@"c:\data.csv")
        {
            TextFieldType = FieldType.Delimited,
            Delimiters = new[] { "," }
        })
{
    while (!parser.EndOfData)
    {
        string[] fields;
        fields = parser.ReadFields();
        //go go go!
    }
}
于 2012-12-03T15:00:37.920 に答える