我正在使用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 打开文件,然后刷新,清除并关闭它,但结果是一样的。
如果你能帮助我,我会很高兴。