ps = lsClientFile.GetHeadPosition();
ps2 = lsTempFile.GetHeadPosition();
while(ps)
{
s1 = lsClientFile.GetNext(ps);
s2 = lsTempFile.GetNext(ps2);
MoveFileEx(s2, s1, MOVEFILE_REPLACE_EXISTING);
AfxMessageBox(s1);
AfxMessageBox(s2);
}
上面lsClientFile和lsTempFile都是CStringList对象.s1,s2为CString类型.
为何每次只有最后一个文件重命名成功?比如我在lsClientFile中加入test1.txt,test2.txt,test3.txt
lsTempFile也加入相应的文件名.如果就test3.txt正确的被重命名了,test1和test2根本就没动.如果换下它们顺序的话也是最后加入的那个被正确重命名.AfxMessageBox(s1)和AfxMessageBox(s2)都是正确的。应该是MoveFileEx的问题,当然我MoveFile也试过了,同样的结果。这是怎么回事啊?
解决方案 »
- ListControl 控件怎么多选?
- 用代码如何实现怎样用代码实现将一个mdb中的某一个表复制到另一个mdb文件中?
- 求思路,局域网内部访问权限设置
- 怎样才能知道 删不掉的dll文件 正在被哪个进程使用?
- 请问大侠如何用Shell_NotifyIcon隐藏MSN Messenger在托盘内的图标?
- 弱弱的问,怎么把一个文件拷贝到另一个文件,谢谢!
- 打包
- 问个简单的问题:如何取得字符串的长度?
- 请问如何给对话框中的一个static控件加上tooltip?
- 送分的问题:请提功一个随机函数,要求能返回0,1,2,3四个数之一
- 终止所有线程
- 问一个WSAAsyncSelect、WSAEventSelect模型的问题。
也就是说,这段代码成功地将lsTempFile中的文件重命名为lsClentFile中对应的文件名。你可以这样
if(MoveFileEx(s2, s1, MOVEFILE_REPLACE_EXISTING))
判断一下,是不是每次改名返回都是成功呢,如果不成功
GetLastError();
看一下错误是什么。