CopyFile的奇怪问题 我在程序里使用copyfile,奇怪的是这个函数只能正常运行一次,再使用第二次时,打算把上次一copy的文件再覆盖一遍,就会失败。为什么会这样呢?是不是刚写入的文件有保护?我已经在函数里指定要覆盖了。谢谢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用GetLastError检查一下什么错误 没有显性的打开文件,使用api完成的文件copy,程序很简单,如下,结果copyfile那一句只能正常执行一次。bool CRj02Dlg::Copy2Temp(CString str){CString tempfile;tempfile=m_path+"res\\temp.mp3";//将要生成的目标文件名::CopyFile(str,tempfile,FALSE);//str是源文件名return true;} m_path是什么东西,用绝对路径试试。有可能是copyfile之后系统的当前路径改变了 m_path是程序所在路径。要将文件拷贝到程序所在目录的res目录下,所以m_path+"res\\temp.mp3"。程序一直使用绝对路径。源文件路径也是绝对路径,所以可能不是这个问题。我想可能是文件没有释放的问题,因为程序运行着,晾了一会儿,再试就好了,但紧接着再试又不行了。说明有什么东西占用了temp.mp3这个文件。我不太明白,msdn里没有说copyfile会占用一会儿文件,我自己的程序也并没有占用这个文件。完全没有道理的。对了,文件拷贝过去后,会立刻通过一个html文件播放(使用htmlview)。但我认为,html播放后应该就释放了吧,会不会是它把文件占住了。如果是的话,怎么让html文件释放呢?我已经用refresh2试过了,没用。 关于生成程序对文件操作的路径问题 VS2010总是提示出现问题需要关闭~~ hook GetProcAddress的问题. 位图怎么加载? 50分请教一个难题!! 求才 为什么基于对话框的窗口无法响应键盘输入? 如何让CLassWizard添加控件成员变量? ADO访问ACCESS数据库,保持数据库连接不关闭,为何频繁多次操作数据库后,数据库文件损坏 为什么有的对象在使用时用A a;就可使用,有的却一定要new一个呢?? 如何在程序中读取 .iso 文件,还有,如何实现虚拟光驱? ★★★相互学习列出自己的QQ,成立VC菜鸟联盟!!!!★★★
检查一下什么错误
bool CRj02Dlg::Copy2Temp(CString str)
{
CString tempfile;
tempfile=m_path+"res\\temp.mp3";//将要生成的目标文件名::CopyFile(str,tempfile,FALSE);//str是源文件名return true;
}
所以m_path+"res\\temp.mp3"。
程序一直使用绝对路径。源文件路径也是绝对路径,所以可能不是这个问题。我想可能是文件没有释放的问题,因为程序运行着,晾了一会儿,再试就好了,但紧接着再试又不行了。说明有什么东西占用了temp.mp3这个文件。我不太明白,msdn里没有说copyfile会占用一会儿文件,我自己的程序也并没有占用这个文件。完全没有道理的。对了,文件拷贝过去后,会立刻通过一个html文件播放(使用htmlview)。但我认为,html播放后应该就释放了吧,会不会是它把文件占住了。如果是的话,怎么让html文件释放呢?我已经用refresh2试过了,没用。