求助各位大神,我如何把一个文件夹下的文件移动到另一个文件夹下啊???

90Runner 2012-12-18 03:29:41
我写了如下的代码 没能实现啊,求帮助。
[code=c]
void CGzDlg::OnOK()
{
// TODO: Add extra validation here

//CDialog::OnOK();
CString yw = "源文件";
GetDlgItemText(IDC_EDIT1,s_str);
if(s_str != "")
{
str1 += s_str;
str1 += yw;
}
CreateDirectory(str1,NULL);
SetTimer(1,1000,NULL);
}

void CGzDlg::OnTimer(UINT nIDEvent)
{
CString str,filename,result;
GetDlgItemText(IDC_EDIT2,str);
if(str != "")
{
filename += str;
filename += "*.*";
}
switch(nIDEvent)
{
case 1:
WIN32_FIND_DATA FindFileData;
HANDLE hFind;
hFind = FindFirstFile(filename,&FindFileData);
if(hFind != INVALID_HANDLE_VALUE)
{
while(FindNextFile(hFind,&FindFileData))
{
result = FindFileData.cFileName;
// SetDlgItemText(IDC_EDIT3,result);
MoveFile(str,str1) ;//参数为原路径与新路径
// MoveFileEx(str,str1,MOVEFILE_REPLACE_EXISTING);
}
FindClose(hFind);
}
default:
break;
}
CDialog::OnTimer(nIDEvent);
}
[/code]
请问该如何实现文件的移动啊
...全文
678 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
90Runner 2012-12-19
  • 打赏
  • 举报
回复
引用 8 楼 desehawk 的回复:
C/C++ code ? 123456789101112131415161718192021222324252627282930313233 CString str,filename,result, str1, str2, str3; //GetDlgItemText(IDC_EDIT2,str); str = L"d:\\abc\\"; ……
谢谢你 弄好了 昨天看的那个关于MoveFile的那个给我误导了 哎 他写的两个参数就是原路径与指定路径
水瓶座雨夕 2012-12-18
  • 打赏
  • 举报
回复

CString str,filename,result, str1, str2, str3;     
	//GetDlgItemText(IDC_EDIT2,str);     
	str = L"d:\\abc\\";
	str1 = L"d:\\abc1\\";
	str2 = "";
	str3 = "";

	if(str != "")     
	{         
		filename += str;         
		filename += L"*.*";    
	}     
	switch(nIDEvent)     
	{         
	case 1:             
		WIN32_FIND_DATA FindFileData;              
		HANDLE hFind;             
		hFind = FindFirstFile(filename,&FindFileData);              
		if(hFind != INVALID_HANDLE_VALUE)                              
		{                  
			while(FindNextFile(hFind,&FindFileData))                 
			{                    
				result = FindFileData.cFileName;   
				str2 = str + result;
				str3 = str1 + result;
				MoveFileW(str2,str3) ;//参数为原路径与新路径 //                                
			}                 
			FindClose(hFind);             
		}         
	default:            
		break;     
	}     
你稍微改下自己的路径试试
90Runner 2012-12-18
  • 打赏
  • 举报
回复
求帮助啊,那位大神帮我解决解决啊
90Runner 2012-12-18
  • 打赏
  • 举报
回复
引用 5 楼 xiaoxiaoyuyun 的回复:
MoveFile(str,str1) ; 路径要全路径名,而不是文件名。例如"c:\\file\\a.txt"
我给的是路径名( E:\\dj\\ )这样不对是吗?必须要把文件名也给出吗?
潇潇雨云 2012-12-18
  • 打赏
  • 举报
回复
MoveFile(str,str1) ; 路径要全路径名,而不是文件名。例如"c:\\file\\a.txt"
90Runner 2012-12-18
  • 打赏
  • 举报
回复
引用 1 楼 hfz8867879 的回复:
MoveFile(str,str1) ; 你的路径都不对的吧~ result = FindFileData.cFileName; 每次路径都要把当前的目录路径加上这个result,然后用这个路径去move或者copy
你的意思是我应该这样写是吗 MoveFile(result,str1) ; 我也这样写过但是 还是没能实现移动啊,这是怎么回事啊?
2012-12-18
  • 打赏
  • 举报
回复
自己手写:CopyFile()函数来复制文件,CreateDirectory()在目标文件夹下建立目录。CFind 类移动文件,还要用到函数的递归调用。 简单方法:SHFileOperation()
水瓶座雨夕 2012-12-18
  • 打赏
  • 举报
回复
调试模式吗??调试模式的话,路径要注意
九州剑王 2012-12-18
  • 打赏
  • 举报
回复
MoveFile(str,str1) ; 你的路径都不对的吧~ result = FindFileData.cFileName; 每次路径都要把当前的目录路径加上这个result,然后用这个路径去move或者copy

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧