复制文件夹及其下的文件如何编写

shaoye2004 2004-12-23 10:27:58
这具体怎么编写啊。用C++
...全文
412 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
huangzansong 2004-12-26
  • 打赏
  • 举报
回复
是包含在string.h 库里
huangzansong 2004-12-26
  • 打赏
  • 举报
回复
不知道 但我知道c++库里 有一个对字符串负值函数 strcpy
cat_dog 2004-12-25
  • 打赏
  • 举报
回复
shaoye2004():
每个平台都有它的API,我上面用的就Window API函数,在VC下编译,没有用MFC库。 不知你现在是在哪个平台下学C++
shaoye2004 2004-12-25
  • 打赏
  • 举报
回复
能不能就用c++啊,不要用vc
由于我是初学者,现在在学c++,具体vc还没学过,不懂。
谢谢上面的朋友再帮我写一下!
kobefly 2004-12-24
  • 打赏
  • 举报
回复
人家不是有自己已经写好的API吗

就不用自己写拉
danieltang 2004-12-24
  • 打赏
  • 举报
回复
根据操作系统不同而不同,
可以利用有多种方式。
如window下可用
system("xcopy srcdir desdir /s");
allen_zhaozhencn 2004-12-24
  • 打赏
  • 举报
回复
算法不难,最重要一点就是递归出所有的子文件夹和文件,.
zhengwei1984222 2004-12-24
  • 打赏
  • 举报
回复
收藏
cat_dog 2004-12-23
  • 打赏
  • 举报
回复
这个函数是我自己写的,在VC里运行过

BOOL CopyDirectory(LPTSTR strSrcPath, LPTSTR strDestPath)
{
HANDLE HResult;
WIN32_FIND_DATA FindFileData;
TCHAR strSrcFileName[MAX_PATH],strDestFileName[MAX_PATH];
BOOL blResult;
HResult = FindFirstFile(strSrcPath,&FindFileData);

if(HResult == INVALID_HANDLE_VALUE)
{
return FALSE ;
}

if(strSrcPath[strlen(strSrcPath ) - 1] == '\\')
strSrcPath[strlen(strSrcPath ) - 1] = '\0';

if(strSrcPath[strlen(strDestPath ) - 1] == '\\')
strSrcPath[strlen(strDestPath ) - 1] = '\0';

HResult = FindFirstFile(strDestPath, &FindFileData);

if(HResult == INVALID_HANDLE_VALUE)
{
CreateDirectory(strDestPath ,NULL);
}

StrCpy(strSrcFileName,strSrcPath);
StrCat(strSrcFileName,"\\*");

HResult = FindFirstFile(strSrcFileName,&FindFileData);

if(HResult == INVALID_HANDLE_VALUE)
{
return FALSE;
}


if(StrCmp(FindFileData.cFileName , _T(".")) && StrCmp (FindFileData.cFileName ,_T("..")) )
{
StrCpy(strSrcFileName,strSrcPath);
StrCat(strSrcFileName,"\\");
StrCat(strSrcFileName,FindFileData.cFileName);
StrCpy(strDestFileName,strDestPath);
StrCat(strDestFileName,"\\");
StrCat(strDestFileName,FindFileData.cFileName);

if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY == FILE_ATTRIBUTE_DIRECTORY)

{
CopyDirectory(strSrcFileName,strDestFileName);
}
else
{

CopyFile(strSrcFileName,strDestFileName,FALSE);
}
}
while(1)
{
blResult = FindNextFile(HResult,&FindFileData);
if(!blResult)
break;

if(StrCmp(FindFileData.cFileName , _T(".")) && StrCmp(FindFileData.cFileName ,_T("..")) )
{
StrCpy(strSrcFileName,strSrcPath);
StrCat(strSrcFileName,"\\");
StrCat(strSrcFileName,FindFileData.cFileName);
StrCpy(strDestFileName,strDestPath);
StrCat(strDestFileName,"\\");
StrCat(strDestFileName,FindFileData.cFileName);

if((FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) == FILE_ATTRIBUTE_DIRECTORY)

{
CopyDirectory(strSrcFileName,strDestFileName);
}
else
{

CopyFile(strSrcFileName,strDestFileName,FALSE);
}
}
}

return TRUE;
}

64,683

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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