VB.NETでファイルの行数を取得する
2008/09/02
基本的な処理ですが、なぜか逆引き本などにも載っていないようなので、私が使っているものをアップしておきます。
テキストファイルの内容を改行で分割した配列に変換して、その配列の長さから行数を求めています。
テキストファイルの内容をすべて変数に取り込むため、巨大なテキストを扱うには向かないかもしれません。
とりあえず1万行程度のテキストでは速度面でも問題ないようです。
'ファイルの行数を取得(ファイルが存在しないかエラーの場合は-1を返す)
Public Function CountLine(ByVal fileNamePath As String) As Integer
Dim textFile As IO.StreamReader
Dim text As String
If IO.File.Exists(fileNamePath) = False Then
CountLine = -1
Exit Function
End If
textFile = Nothing
Try
textFile = IO.File.OpenText(fileNamePath)
text = textFile.ReadToEnd
CountLine = text.Split(vbCrLf).Length
'末尾の改行はカウントしない
If text.EndsWith(vbCrLf) Then
CountLine = CountLine - 1
End If
Catch ex As Exception
CountLine = -1
Finally
If textFile IsNot Nothing Then
textFile.Close()
End If
End Try
End Function