記事内に広告が含まれています。

【C#】超絶簡単なログファイルの作成

C#でログファイルを作成する方法です。

【スポンサーリンク】

ログファイルの作成

ログファイルの作成は、StreamWriterクラスのWriteメソッドを使うと簡単です。

サンプルとして次の画面を用意しました。

f:id:neko_britannia:20211112144551j:plain

仕様はとても簡単です。

  • 「書き込む内容」のテキストボックスに書き込む内容を入力
  • 「出力ディレクトリパス」のテキストボックスに、出力したいディレクトリパスを入力
  • 参照ボタン:ディレクトリダイアログを表示させる
  • 書き込みボタン:ファイルを出力

サンプルコードはこちら。画面を作成して、コピペしてみてください。オブジェクト名は適宜修正して下さい。

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);
    }

}

実際に実行してみます。

f:id:neko_britannia:20211112144957j:plain

書き込みたい内容を上のテキストボックスに、出力先のディレクトリパスを下のテキストボックスに入力して、書き込みボタンをクリックします。

f:id:neko_britannia:20211112145141j:plain

書き込みが完了すると、メッセージボックスが表示されます。出力先のディレクトリを確認してみましょう。

f:id:neko_britannia:20211112145312j:plain

ファイルが出力されています。

f:id:neko_britannia:20211112145353j:plain

テキストファイルを確認すると、画面で入力された内容が記載されていますね。

【スポンサーリンク】

解説

今回のポイントになる部分は、ここです。

//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

.