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

shaoye2004 2004-12-23 10:27:58
这具体怎么编写啊。用C++
...全文
389 点赞 收藏 9
写回复
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;
}
回复 点赞
发动态
发帖子
C++ 语言
创建于2007-09-28

3.1w+

社区成员

24.8w+

社区内容

C++ 语言相关问题讨论,技术干货分享
社区公告
暂无公告