如何复制目录下所有的文件夹和文件到另一个目录下?

zcqzy 2005-12-28 11:53:30
如何复制目录下所有的文件夹和文件到另一个目录下
...全文
491 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
hzhxxx 2006-06-29
  • 打赏
  • 举报
回复

//送佛送到西,好人做到底
//使用 C/c++ 标准库实现
void filecopy()
{
std::string srcfile = "c:\\aaa.txt";
std::string destfile = "c:\\bbb.txt";
FILE *fpsrc = fopen(srcfile.c_str(),"r+b");
FILE *fpdest = fopen(destfile.c_str(),"w+b");
{
char buff[1024 * 64];
memset(buff,0,sizeof(buff));
int readlen = fread(buff,sizeof(char),sizeof(buff),fpsrc);
if(readlen < sizeof(buff))
{
//复制出现错误
if(ferror(fpsrc))
{
fclose(fpsrc);
fclose(fpdest);
}
fwrite(buff,sizeof(char),readlen,fpdest);
}
}
while(!feof(fpsrc));
fclose(fpsrc);
fclose(fpdest);
}
lixiaosan 2006-04-22
  • 打赏
  • 举报
回复
SHFileOperation
一帆 2006-04-22
  • 打赏
  • 举报
回复
system("xcopy C:\\aaa\\*.* d:\\aaa\\*.*")
出现DOS界面,
yangxingkuan 2006-04-22
  • 打赏
  • 举报
回复
学习
vcmute 2006-04-22
  • 打赏
  • 举报
回复
TCHAR pFrom[50] = _T("C:\\aaa");
TCHAR pTo[50] = _T("D:\\aaa");


pFrom[_tcslen(pFrom)+1] = NULL;
pTo[_tcslen(pTo)+1] = NULL;


SHFILEOPSTRUCT shfop;
ZeroMemory(&shfop, sizeof(shfop));
shfop.hwnd = NULL;
shfop.wFunc = FO_COPY;
shfop.pFrom = pFrom;
shfop.pTo = pTo;
shfop.fFlags = FOF_NOCONFIRMATION | FOF_RENAMEONCOLLISION |
FOF_NOCONFIRMMKDIR | FOF_SILENT;
//shfop.fAnyOperationsAborted = 0;
//shfop.hNameMappings = NULL;
//shfop.lpszProgressTitle = NULL;

SHFileOperation(&shfop);

Regards
George
Snow_Ice11111 2006-04-22
  • 打赏
  • 举报
回复
汗,不会换个函数么?!
WinExec("xcopy C:\\aaa\\*.* d:\\aaa\\*.*",SW_HIDE);
thisisll 2005-12-28
  • 打赏
  • 举报
回复
CFileFind类可以遍历所有文件
CFile可以拷贝
wshcdr 2005-12-28
  • 打赏
  • 举报
回复
欣赏这个
system("xcopy C:\\aaa\\*.* d:\\aaa\\*.*")
junliu_0 2005-12-28
  • 打赏
  • 举报
回复
CFileFind ff;
CString szDir=strDir; //文件夹路径

if(szDir.Right(1)!="\\")
szDir+="\\";
szDir+="*.*";
BOOL res=ff.FindFile(szDir);
while(res)
{
res = ff.FindNextFile();
if( !ff.IsDirectory() && !ff.IsDots() ) //如果是文件
{
CopyFile(ff.GetFilePath(), C:\\目标路径\\);
}
else if( ff.IsDirectory() && !ff.IsDots() ) //是否为目录
{
CopyFolder(ff.GetFilePath()-ff.ff.GetFileName(), C:\\目标路径\\);
SearchFile( ff.GetFilePath() ); //递归
}
}
ff.Close();
Seu_why 2005-12-28
  • 打赏
  • 举报
回复
不会吧 还是楼上简单
汗 搬板凳学习
Snow_Ice11111 2005-12-28
  • 打赏
  • 举报
回复
system("xcopy C:\\aaa\\*.* d:\\aaa\\*.*")
bobob 2005-12-28
  • 打赏
  • 举报
回复
首先,建立相同的目录体系
然后再查找,复制文件
ssbelle 2005-12-28
  • 打赏
  • 举报
回复
递归遍历目录文件 逐个copyfile到指定目录
arvid_gs 2005-12-28
  • 打赏
  • 举报
回复
2个函数的使用
FindFirstFile ----找到第一个文件
CopyFile ----这个就不说了
FindNextFile ---找下一个文件.

下面是个例子,该一下就OK了!



#include <windows.h>
#include <stdio.h>

WIN32_FIND_DATA FileData;
HANDLE hSearch;
DWORD dwAttrs;
char szDirPath[] = "c:\\TEXTRO\\";
char szNewPath[MAX_PATH];
char szHome[MAX_PATH];

BOOL fFinished = FALSE;

// Create a new directory.

if (!CreateDirectory(szDirPath, NULL))
{
printf("Couldn't create new directory.");
return;
}

// Start searching for .TXT files in the current directory.

hSearch = FindFirstFile("*.txt", &FileData);
if (hSearch == INVALID_HANDLE_VALUE)
{
printf("No .TXT files found.");
return;
}

// Copy each .TXT file to the new directory
// and change it to read only, if not already.

while (!fFinished)
{
lstrcpy(szNewPath, szDirPath);
lstrcat(szNewPath, FileData.cFileName);
if (CopyFile(FileData.cFileName, szNewPath, FALSE))
{
dwAttrs = GetFileAttributes(FileData.cFileName);
if (!(dwAttrs & FILE_ATTRIBUTE_READONLY))
{
SetFileAttributes(szNewPath,
dwAttrs | FILE_ATTRIBUTE_READONLY);
}
}
else
{
printf("Couldn't copy file.");
return;
}

if (!FindNextFile(hSearch, &FileData))
{
if (GetLastError() == ERROR_NO_MORE_FILES)
{
MessageBox(hwnd, "No more .TXT files.",
"Search completed.", MB_OK);
fFinished = TRUE;
}
else
{
printf("Couldn't find next file.");
return;
}
}
}

// Close the search handle.

FindClose(hSearch);


16,551

社区成员

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

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

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