|
分類:[C# (Windows)]
いつもお世話になっています
環境はC#2005でWindowsXPです
テキストファイルが更新されたら、その内容を取得して任意のフォルダに保存をすると言うプログラムを作っています
動かしてみると、変更されたテキストの内容を取得する際に、「他のプログラムで使用されています」と言うエラーが出て終了してしまいます
そこで、変更されたテキストの内容を取得するまで処理を繰り返すにはどうしたら良いのでしょうか?
以下の様なテキストファイル更新時の動作とファイルを作成する記述をしています
private void watch_Changed(System.Objectsource,System.IO.FileSystemEventArgs e)
{
string strText;
switch (e.ChangeType)
{
case WatcherChangeTypes.Changed:
StreamReader sr = new StreamReader(e.FullPath,System.Text.Encoding.GetEncoding("Shift_Jis"));
strText = sr.ReadToEnd(); //(更新されたテキストの内容を全て取得)
sr.Close();
ReadLog(strText);
break;
}
}
private void ReadLog(string o)
{
string fn = txt_log.Text; //(保存するフォルダ名取得フルパス入力 例 "C:\テキスト保存" )
DateTime dtNow = DateTime.Now; //(作成時の日付と時間を取得)
string strNow = dtNow.ToString("yyyyMMddHHmmss");
string filename = fn + "\\"+ strNow + ".txt"; //(例"C:\テキスト保存\20070301101010.txt")
if (o != "")
{
FileStream fs = System.IO.File.Create(filename);
fs.Close();
StreamWriter sw = new StreamWriter(filename, false, System.Text.Encoding.GetEncoding("Shift_Jis"));
sw.Write(o);
sw.Close();
}
else { }
}
|