我正在使用单个表单创建一个C#Windows窗体应用程序,它会创建一些文件。但我希望这些是暂时的。
所以我打算这样做。
在程序执行期间创建的所有文件将在表单关闭后被删除(我在关闭表单之前尝试删除它们,但是我收到错误,所以我需要在表单关闭后删除它)。但问题似乎无法做到。我尝试搜索一些网站,但我无法得到解决方案。所以我在这里。如果有人知道如何在表单关闭后执行某些代码,请与我分享
提前致谢。
---- ----编辑
Sry家伙没有在这里添加代码。
我是应用程序开发的菜鸟。 无论如何,这是我试过的:
private void Form1_FormClosing(Object sender, FormClosingEventArgs e)
{
int Length = Directory.GetFiles("C:\\Windows\\Temp\\Yamin").Length;
for( int i = 0; i < Length; i++ )
{
File.Delete("C:\\Windows\\Temp\\Yamin\\" + i + ".jpg");
}
}
还试过这个:
private void Form1_FormClosed(Object sender, FormClosedEventArgs e)
{
int Length = Directory.GetFiles("C:\\Windows\\Temp\\Yamin").Length;
for (int i = 0; i < Length; i++)
{
File.Delete("C:\\Windows\\Temp\\Yamin\\" + i + ".jpg");
}
}
我开始测试程序。一切正常,但当我关闭表格时,我希望上面的功能被执行,但它们没有被执行 多数民众赞成我的问题 再次,在此先感谢。
答案 0 :(得分:0)
请查看Directory.GetFiles Method (String)的文档。也许这是一个问题,或者您发布的代码可能与您的实际代码不一致。
我创建了一个Windows窗体应用程序,并在窗体上放置了两个按钮,一个“创建”按钮和一个“删除”按钮。
以下是“创建”按钮的代码:
string Name = string.Empty;
for (int i=0; i<3; ++i)
{
try
{
Name = Folder + "SO36922336-" + i.ToString() + ".txt";
StreamWriter sw = new StreamWriter(Name);
sw.WriteLine("File created using StreamWriter class.");
sw.Close();
sw.Dispose();
}
catch (Exception ex)
{
MessageBox.Show("Error: " + ex.Message + "\r\n" + Name);
}
}
以下是删除按钮的代码:
string[] Files = Directory.GetFiles(Folder, "SO36922336-*.txt");
foreach (string fn in Files)
{
File.Delete(fn);
}
该代码适合我。因此,要么您正在正确地使用Directory.GetFiles,要么问题出在您未显示的代码中,或者两者都存在。您无需在表单外进行删除。
答案 1 :(得分:0)
最简单的解决方案是让操作系统处理这些临时文件。为此,请调用fgetcsv重载 1)获取File.Create参数,然后传递DeleteOnClose
。这样,一旦所有句柄都关闭,系统就会自动删除该文件。额外奖励:如果您的应用程序因崩溃而终止,操作系统仍会在您之后清理文件。