'変数宣言 Dim FileNameCsv As String() Dim csvFileName As String = Nothing Dim Writer As System.IO.TextWriter Dim dbSTA As CommonOrcl.DBAccess Dim swText As FileIO.TextFieldParser = Nothing '対象のファイルを読取り、データベースへ書込み 'DB接続(DB) dbSTA = New CommonOrcl.DBAccess("DB") 'トランザクション開始 dbSTA.BeginTrans() 'INフォルダに格納さている全ファイルを対象に処理を実行する FileNameCsv = System.IO. Directory.GetFiles(_In_Dir, "*.CSV") '取得したCSVファイルの数処理(Length - 1) For i As Integer = 0 To FileNameCsv.Length - 1 '変数CsvNameにCsvNameのファイル名代入 Dim CsvName As String = System.IO.Path.GetFileName (FileNameCsv(i).ToString) 'INフォルダにあるCSV名+処理開始をログ記載 ' YYYY/MM/DD hh:nn:ss *****.csv,処理開始 Writer.WriteLine (DateTime.Now.ToString("G") & "," & CsvName.ToString & ",処理開始") 'INフォルダにあるCSVのデータをDBへ書込み '読み込み結果用の配列を定義 Dim arrCsvData As New System.Collections.ArrayList() 'CSVファイル名を設定 csvFileName = FileNameCsv(i).ToString 'Shift JISで読み込みます。 swText = New FileIO.TextFieldParser (csvFileName, System.Text.Encoding. GetEncoding("Shift_JIS")) 'フィールドが文字で区切られている設定を行います。 '(初期値がDelimited) swText.TextFieldType = FileIO.FieldType.Delimited '区切り文字を「,(カンマ)」に設定 swText.Delimiters = New String() {","} 'フィールドを"で囲み、改行文字、区切り文字を 含めることが 'できるかを設定(初期値がtrue) swText.HasFieldsEnclosedInQuotes = True 'フィールドの前後からスペースを削除する設定を行います。 '(初期値がtrue) swText.TrimWhiteSpace = True '1行ずつ処理(最後の行まで処理が終わったら抜ける) While Not swText.EndOfData 'CSVファイルのフィールドを読み込みます。 Dim fields As String() = swText.ReadFields() 'ダブルクォーテーションのを削除 _str = String.Join(",", fields) '配列に追加 arrCsvData.Add(fields) 'データ更新(str_UpdateでSQL実行) 'SQLがFalseで帰ってきた場合以下処理 If Not str_Update() Then 'Try〜Catch間から強制的にCatchへ飛ばす Throw New Exception End If End While 'ログへ書込み Writer.WriteLine(DateTime.Now.ToString("G") & "," & CsvName.ToString & ",正常終了") 'ファイルを解放 swText.Close() swText = Nothing '書込み終了後、CSVファイルを\BKUPに移行 System.IO.File.Move(FileNameCsv(i).ToString, _Bkup_Dir & "\" & CsvName.ToString) Next 'トランザクション終了 dbSTA.Commit()