私のプログラムは、起動時にログファイルを作成します。ユーザーは、ログファイルを削除する方法を呼び出す "ログをクリアする"という設定を使用するオプションがあります。削除した後にtxtファイルを作成できないのはなぜですか?
//calls for a YesNo prompt to delete log or not
result = objectMessageBox.ReturnDeleteLogPrompt();
if (result == DialogResult.Yes)
{
//throw prompt
if (File.Exists(objectLog.GetLogLocation()) == true)
{
try
{
//delete the log file
File.Delete(objectLog.GetLogLocation());
//throw balloon tip saying log was cleared
ShowBalloonTip("LogCleared");
}
catch (Exception ee)
{
MessageBox.Show("Error thrown deleting log: " + ee);
System.Windows.Forms.Clipboard.SetText(ee.ToString());
}
}
}
ログファイルを完全に削除したため、再作成する必要があります。
try
{
//we create a new log file so it seems that the log has just been cleared
objectLog.CreateLog();
}
catch (Exception ee)
{
MessageBox.Show("Error occured while clearing log:\n" + ee);
}
しかし、それは、ログファイルを再作成しようとしたときにそれが言うエラースロー:
「System.IO.IOExceptionは:プロセスがアクセスすることはできませんがだから私はこれを持っているメソッドを呼び出しますファイル '~~'は別のプロセスで使用されているためです。
私の呼び出し中にファイルを削除しても、そのファイルにアクセスしているようです。 file.delete
と呼ぶときに何かを処分する必要がありますか?
スタックトレースとは何ですか? – SLaks
あなたはそれを削除した後にobjectLogでdisposeを呼び出そうとしましたか? –
ログファイルを開いているアプリケーションが他に本当にありませんか? http://live.sysinternals.com/のprocmonとprocexpを使用して、どのアプリケーションがファイルにアクセスしているかを確認してください。 –