未正确关闭后删除文件

时间:2015-05-20 09:09:41

标签: c++ visual-studio-2005 fopen fstream wofstream

我正在使用VS 2005编写C ++代码,该代码在文件夹中创建带有 wofstream 的文本文件。我确切地知道他们在哪里创造(我有路径),我知道他们的大小。

每次我结束程序时,我都被迫严格关闭与程序关联的命令窗口,因此文本文件没有正确关闭。然后,当我再次启动我的程序时,它会创建另一个文件夹和新的文本文件。

稍后在我的程序中,我需要删除最旧的文件(如果总大小超过一定的字节数)。但是,只要我不停止我的程序,它们就不会被删除。我的意思是它们仍然可以在文件夹中看到,但是当我尝试打开它时,它说“无法打开文档。

我知道问题是文件未正确关闭,但每当我尝试关闭它们时,它都不会改变任何内容。

这是我的代码

    // Here is how the files are created
    std::wofstream proc_log;
    proc_log.open (L"process_log.txt");
    proc_log << L"Time\tEvent\tPID\tPPID\tName\tCore" << std::endl;

然后我在其中写东西,检查文件夹的大小并尝试删除最旧的文件

    char *pwd = _getcwd(NULL,0);
    string cwd(pwd);

    string log = cwd + "\\process_log.txt";

    FILE *LogName = fopen(log.c_str(),"r");
    fclose(LogName);

    SubFileName = "DEL process_log.txt";
    system(SubFileName.c_str());

我还尝试用 fstream 打开文件,然后刷新,清除并关闭它,但结果是一样的。

如果你能帮助我,我会很高兴。

0 个答案:

没有答案