Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1591048
  • 博文数量: 441
  • 博客积分: 20087
  • 博客等级: 上将
  • 技术积分: 3562
  • 用 户 组: 普通用户
  • 注册时间: 2006-06-19 15:35
文章分类

全部博文(441)

文章存档

2014年(1)

2012年(1)

2011年(8)

2010年(16)

2009年(15)

2008年(152)

2007年(178)

2006年(70)

分类: C/C++

2010-04-16 16:17:36

VC下没有直接的删除文件夹的函数, 下面的函数展示了如何删除整个文件夹:

void DeleteDir(LPCTSTR lpszDir)
{
    WIN32_FIND_DATA wfd;
    TCHAR szFile[MAX_PATH];
    TCHAR szDelDir[MAX_PATH];

    lstrcpy(szDelDir, lpszDir);

    wsprintf(szFile, TEXT("%s\\*.*"), lpszDir);

    HANDLE hFindFile = FindFirstFile(szFile, &wfd);
    if ( INVALID_HANDLE_VALUE == hFindFile )
        return;

    BOOL bFind = TRUE;
    while ( bFind )
    {
        bFind = FindNextFile(hFindFile, &wfd);

        if ( lstrcmpi(wfd.cFileName, TEXT(".")) == 0 ||
             lstrcmpi(wfd.cFileName, TEXT("..")) == 0 )
             continue;

        wsprintf(szFile, TEXT("%s\\%s"), szDelDir, wfd.cFileName);

        if ( wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY )
            DeleteDir(szFile);
        else
            DeleteFile(szFile);
        
    }

    FindClose(hFindFile);

    RemoveDirectory(szDelDir);
}

author: thinker
e-mail: cnhnyugmail.com
qq: 94483026
阅读(1475) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chenenzhi2013-03-04 09:55:36

此代码有BUG:修改如下:
void DeleteDir(LPCTSTR lpszDir)
{
    WIN32_FIND_DATA wfd;
    TCHAR szFile[MAX_PATH];
    TCHAR szDelDir[MAX_PATH];

    lstrcpy(szDelDir, lpszDir);

    wsprintf(szFile, TEXT("%s\\*.*"), lpszDir);

    HANDLE hFindFile = FindFirstFile(szFile,&n