Avatar billede unsigned Nybegynder
05. november 2002 - 09:53 Der er 5 kommentarer og
1 løsning

Hvordan sletter man mapper i C++?

I mappen C:\Work\WorkKopi ligger der fem mapper. Hvordan kan man i C++ skrive et program, der slette disse fem mapper?
Avatar billede medions Nybegynder
05. november 2002 - 10:05 #1
_chdir("C:\\MyDir");

//>Rune
Avatar billede unsigned Nybegynder
05. november 2002 - 10:22 #2
-> medions  Hvilket include directory ligger _chdir i? Jeg har prøvet med følgende lille kodestump.

int main(int argc, char **argv)
{
    // _chdir("C:\\MyDir");
    _chdir("C:\Work\Skabelon\Permut")
   
    cout << "\n\n\tTryk RETUR for at afslutte programmet.." ;
    getch() ;
    return 0;
}

Jeg er også i tvivl om backslash'erne. Hvor skal jeg i mit program have to backslash?

Den kommando du har foreslået, vil den slette mappen permut, eller vil den, som den rigtig skal, slette de fem mapper, der ligger i Permut?
Avatar billede soepro Nybegynder
08. november 2002 - 14:42 #3
Hvorfor ikke bare system("deltree C:\\Work\\Skabelon\\Permut");

Husk du skal have dobbelte backslashes, for at der kommer een backslash i teksten.
Avatar billede dilleberg Nybegynder
10. november 2002 - 22:14 #4
Dette er egentlig ikke et C++ problem, men et Windows problem.
Brug funktionen
  int _rmdir( const char *dirname );
defineret i <direct.h>

_chdir skifter directory.
Avatar billede dilleberg Nybegynder
10. november 2002 - 22:22 #5
_rmdir kræver at directory'et er tomt.
Funktionen skal altså pakkes ind i en rekursion hvor alle filer og subdirectories slettes.
Eksempel i psedokode:

void RemoveDir(const char * szDir)
{
  // For alle filer i Dir
  {
    const char * szFileName;
    // ...
    unlink(szFileName);
  }

  // For alle sub directories i Dir
  {
    const char * szSubdir
    // ...
    RemoveDir(szSubdir);
  }
  return;
}
Avatar billede dilleberg Nybegynder
10. november 2002 - 23:02 #6
Oops.

Og så skal RemoveDir selvfølgelig afsluttes med

_rmdir(szDir);
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