public TryDeleteResult tryDelete(string filename)
{
bool tryAgain = false;
do
{
try
{
if (File.Exists(filename))
{
using (FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.ReadWrite)) { }
File.Delete(filename);
}
tryAgain = false;
}
catch (IOException)
{
switch (currentOwner.InvokeMessageBox("Failed to delete file " + filename + "; is it being accessed?", "Failed", MessageBoxButtons.AbortRetryIgnore))
{
case DialogResult.Retry:
tryAgain = true;
break;
case DialogResult.Ignore:
return TryDeleteResult.Ignored;
case DialogResult.Abort:
return TryDeleteResult.Cancelled;
}
}
} while (tryAgain);
return TryDeleteResult.OK;
}