C#でログファイルを作成する方法です。
ログファイルの作成
ログファイルの作成は、StreamWriterクラスのWriteメソッドを使うと簡単です。
サンプルとして次の画面を用意しました。
仕様はとても簡単です。
- 「書き込む内容」のテキストボックスに書き込む内容を入力
- 「出力ディレクトリパス」のテキストボックスに、出力したいディレクトリパスを入力
- 参照ボタン:ディレクトリダイアログを表示させる
- 書き込みボタン:ファイルを出力
サンプルコードはこちら。画面を作成して、コピペしてみてください。オブジェクト名は適宜修正して下さい。
private void cmdWrite_Click(object sender, EventArgs e) { try { //書き込み内容チェック if (String.IsNullOrEmpty(txtWrite.Text)) { //書き込む内容がブランクの場合は処理終了 MessageBox.Show("書き込む内容がありません。" , "書き込みブランクチェック" , MessageBoxButtons.OK , MessageBoxIcon.Error); return; } //出力ディレクトリパスの存在確認 if (Directory.Exists(txtOutPutPath.Text) == false) { //出力ディレクトリが存在しない場合は処理終了 MessageBox.Show("ディレクトリが存在しません。" , "ディレクトリ存在チェック" , MessageBoxButtons.OK , MessageBoxIcon.Error); return; } //日付ファイル作成 DateTime dt = DateTime.Now; String strOutPutFilePath = txtOutPutPath.Text + "\\" + dt.ToString("yyyyMMddHHmmss") + ".log"; //Shift JIS書き込み //StreamWriterのインスタンス生成 System.IO.StreamWriter ObjSW = new System.IO.StreamWriter( strOutPutFilePath , false ,System.Text.Encoding.GetEncoding("shift_jis")); //StreamWriterで書き込み ObjSW.Write(txtWrite.Text); //StreamWriterのインスタンスを閉じる ObjSW.Close(); //書き込み終了メッセージ MessageBox.Show("書き込みが完了しました。" , "書き込み完了" , MessageBoxButtons.OK , MessageBoxIcon.Information); } catch (Exception ex) { MessageBox.Show(ex.Message , "書き込みエラー" , MessageBoxButtons.OK , MessageBoxIcon.Error); } }
実際に実行してみます。
書き込みたい内容を上のテキストボックスに、出力先のディレクトリパスを下のテキストボックスに入力して、書き込みボタンをクリックします。
書き込みが完了すると、メッセージボックスが表示されます。出力先のディレクトリを確認してみましょう。
ファイルが出力されています。
テキストファイルを確認すると、画面で入力された内容が記載されていますね。
解説
今回のポイントになる部分は、ここです。
//Shift JIS書き込み //StreamWriterのインスタンス生成 System.IO.StreamWriter ObjSW = new System.IO.StreamWriter( strOutPutFilePath , false ,System.Text.Encoding.GetEncoding("shift_jis")); //StreamWriterで書き込み ObjSW.Write(txtWrite.Text); //StreamWriterのインスタンスを閉じる ObjSW.Close();
StreamWriterクラスをインスタンス生成して、StreamWriterクラスのWriteメソッドを使用してファイルに書き込んでいます。
StreamWriterクラスのインスタンス生成の際の引数は以下3つ。
- 第一引数:出力するファイルパス
- 第二引数:上書き設定(true = 追記、false = 新規ファイルで上書き)
- 第三引数:エンコード設定
第一引数に出力したファイルのフルパスを指定します。
第二引数は上書き設定で、trueを指定すれば既存ファイルに追記、falseを指定すれば新規ファイルで上書きします。
第三引数はエンコード(文字コード)設定です。今回はShift JISを文字コードに指定しました。
参考サイト
StreamWriter クラス (System.IO) | Microsoft Docs
.