Avatar billede nubi19 Nybegynder
16. november 2003 - 18:00 Der er 1 kommentar og
1 løsning

rmdir virker ikke, why ?

af en eller anden grund får jeg altid en fejl af typen EACCESS når jeg bruger rmdir. Her er hele koden, der giver problemet:

int recursiveDelete(char* arg)
{
        struct ffblk ffblk;
        char *sti = new char[256];
        char *tmp = new char[256];
        sprintf(sti, "%s\\*.*", arg);
        int done = findfirst(sti, &ffblk, 16);

        while (done == 0)
        {
                sprintf(tmp,"%s\\%s", arg, ffblk.ff_name);
                if (ffblk.ff_attrib != FA_DIREC)
                        DeleteFile(tmp);
                else if (ffblk.ff_name[0] != '.')
                {
                        recursiveDelete(tmp);
                        rmdir(tmp);
                }
                done = findnext(&ffblk);
        }
        return 0;
}

jeg kalder den med den fulde sti til det dir der skal slettes. (Note: jeg ved godt den ikke sletter selve dir'et der kommer over som arg ved det oprindelige kald)
Avatar billede arne_v Ekspert
16. november 2003 - 19:25 #1
int recursiveDelete(char* arg)
{
        struct ffblk ffblk;
        char *sti = new char[256];
        char *tmp = new char[256];
        sprintf(sti, "%s\\*.*", arg);
        int done = findfirst(sti, &ffblk, 16);

        while (done == 0)
        {
                sprintf(tmp,"%s\\%s", arg, ffblk.ff_name);
                if (ffblk.ff_attrib != FA_DIREC)
                        DeleteFile(tmp);
                else if (ffblk.ff_name[0] != '.')
                {
                        recursiveDelete(tmp);
                        rmdir(tmp);
                }
                done = findnext(&ffblk);
        }
        findclose(&ffblk);  // <---------------------------
        return 0;
}
Avatar billede nubi19 Nybegynder
16. november 2003 - 19:46 #2
Der kan man bare se, troede kun det var VCL udgaven der havde en findclose, men så er det jo derfor, tak for hjælpen =)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester