0

我的应用程序遇到了 ramdon 错误。当新文件生成并且其大小为 0K 时,txt 文件访问被拒绝。

我只想复制现有文件并在关闭当前文件后重命名它。

谁能给我一个复制文件的方法?谢谢。

我的代码片段如下。

ofstream    m_LogFile;

CFile   logcfile;

if(dwLength > 1024*1024*10 )
        {
            string fileDate = status.m_mtime.Format("%Y%m%d%H%M%S");        
            string modulePath = Util::GetModulePath();
            string fileNewName(modulePath);
            fileNewName += "mytextlog" + fileDate + ".txt";
            m_LogFile.close();
                           // I want to insert CFile copy method before rename it.
            logcfile.Rename(m_sLogFileName.c_str(), fileNewName.c_str());
            m_LogFile.open(m_sLogFileName.c_str(), ios::out | ios::app);
            _findfile(modulePath.c_str());
        }

我假设我的应用程序错误是由上面的代码引起的。

4

2 回答 2

1

CFile 没有复制文件的方法。

使用 ::CopyFile() 函数可以简单地复制文件,而无需打开和关闭文件。

于 2012-04-25T06:18:31.307 回答
0

是的 CFile 没有复制文件的方法。您可以使用之前发布的 ::CopyFile Win32 方法,或者 CFile 还有另一种(有点复杂)方法,请参见CFile::Open方法中的示例

于 2012-04-25T06:35:57.217 回答