在Windows窗体应用程序C#

时间:2016-04-28 18:06:49

标签: c# windows

我正在使用单个表单创建一个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");
        }
    }

我开始测试程序。一切正常,但当我关闭表格时,我希望上面的功能被执行,但它们没有被执行 多数民众赞成我的问题 再次,在此先感谢。

2 个答案:

答案 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。这样,一旦所有句柄都关闭,系统就会自动删除该文件。额外奖励:如果您的应用程序因崩溃而终止,操作系统仍会在您之后清理文件。

<小时/> 1) 如果您不知道要为 bufferSize 参数传递什么值,只需选择默认值:4096。