指定されたテキストファイルパスとエンコーディングで StreamReader でオープンし、 ファイルを順次 StreamReader.Peek() 関数で読み込み、その回数でレコード件数を取得します。 StreamReader.Peek() 関数で読み込まれたデータは捨てています。
この関数自体は、指定ファイルの存在をチェックしていませんので、必要であればファイルオープン前に確認し、 ファイルが存在しない戻り値を返す必要があります。
テキストファイルレコード件数取得
''' -----------------------------------------------------------------------------
'''
''' テキストファイルレコード件数取得
'''
''' <param name="astrSrcFileName">入力ファイルフルパス名</param>
''' <param name="enc">ファイルのエンコーディング</param>
''' レコード件数(-1:エラー発生)
''' -----------------------------------------------------------------------------
Public Function GetTextFileCount(ByVal astrSrcFileName As String,
ByVal enc As System.Text.Encoding) As Integer
'戻り値初期化
GetTextFileCount = -1
Try
Dim intCnt As Integer = 0
'入力ファイルをオープンする
Using sr As New System.IO.StreamReader(astrSrcFileName, enc)
'ファイルからレコードが存在するまで読込
While (sr.Peek() >= 0)
'ファイルから1行読込
Dim strRead As String = sr.ReadLine()
'件数++
intCnt += 1
End While
End Using
'件数を返す
Return intCnt
Catch ex As Exception
'エラー処理が必要な場合は、ここに記述する
End Try
End Function
関連する記事
⇒フォルダコピー(サブフォルダ以下も含む):[Directory.GetFiles,Directory.GetDirectories]⇒指定フォルダ内の全ファイルを削除 :[Directory.GetFiles,File.Delete]
⇒指定フォルダ内の全ファイルをクリア :[Directory.GetFiles,File.Delete]
⇒テキストファイル追記処理 :[File.ReadAllText,File.AppendAllText]
⇒テキストファイル先頭行削除処理 :[IO.StreamReader,IO.StreamWriter,Encoding.GetEncoding]
⇒ファイルサイズ取得 :[IO.FileInfo]
⇒ファイル上書きコピー :[IO.FileInfo,File.Copy]
PR
コメント