delnode.c

来自「dos 1.0 其中包含quick basic源代码、内存管理himem emm」· C语言 代码 · 共 41 行

C
41
字号
/* delnode - removes a node and its descendants */

#include "..\h\tools.h"
#include <string.h>
#include <direct.h>

static void fDoDel (
    char		*name,
    struct findType	*pBuf,
    va_list		ap
    )
{
    char *p;

    /* if it is a file, attempt to delete it */
    if (!TESTFLAG(PFT_FOUNDATTR(pBuf), A_D)) {
	/* if file is read-only, make it writable */
	if (TESTFLAG(PFT_FOUNDATTR(pBuf), A_RO))
	    if (setattr (name, PFT_FOUNDATTR(pBuf) & ~A_RO))
		return;
	unlink (name);
	}
    else if (strcmp (PFT_FOUNDNAME(pBuf), ".") &&
	     strcmp (PFT_FOUNDNAME(pBuf), "..")) {
	/* clear out subdir first */
	p = strend (name);
	pathcat (name, "*.*");
	forfile (name, A_H | A_S | A_D, fDoDel);
	*p = 0;
	rmdir (name);
	}
    return;
    ap;     //to access, as we don't use the vararg list
}

flagType delnode (name)
char *name;
{
    return (flagType) forfile (name, A_H | A_S | A_D, fDoDel);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?