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
.
