为什么这里的rmdir删除不掉非空目录?

来源:百度知道 编辑:UC知道 时间:2024/07/04 22:20:50
这段代码的目的是通过递归删除一个非空目录,但是不知道为什么在删除该目录以及其所有子目录下的所有文件后,却空的子目录却没有被删除。
代码如下:
#include <stdio.h>
#include <dir.h>
#include <dos.h>
#include <io.h>
#include <string.h>
#include <stdlib.h>

void Rmdir( const char * arg);

int main()
{
char path[100] = "g:\\abc";
Rmdir(path);

}

void Rmdir( const char * arg)
{
struct _finddata_t * data=(struct _finddata_t *)malloc(sizeof(struct _finddata_t));
long handle;
int state ;
char path[100];

strcpy(path,arg);
chdir(path);
handle = _findfirst( "*.*" , data );
state=0;
while ( state == 0 )
{
if ( (data->attrib==16 ) && ( data->name[0]!='.') )
{
strcat(path,"\\");

是这个试试
DELTREE—删除整个目录命令
将整个目录及其下属子目录和文件删除。
格式:DELTREE[盘符:]〈路径名〉

rm -rf folder

rmdir只能删除空目录

下载个Unlocker试试 保管好用
下载地址http://www.onlinedown.net/soft/24732.htm