eine Datei löschen



  • Hi,

    Mit dem Prog möchte ich eine Datei "test" mit der Hilfe von "system()" löschen.
    Aber dieses sieht die Datei nicht. Vermutlich ist
    "if (dir_entry->d_name == "test")" irgentwie falsch. Stimmt's?

    #include <unistd.h>
    #include <sys/types.h>
    #include <dirent.h>
    #include <iostream.h>
    #include <string>
    
    int main()
    {
     int i;
     DIR *directory;
     char *rm_char;
     struct dirent *dir_entry;
       char *verzeichnis = "/home/meinName";
     directory = opendir(verzeichnis);
     while ((dir_entry = readdir(directory)) != NULL)
      cout << dir_entry->d_name << endl;
      if (dir_entry->d_name == "test")
      {
       string rm("rm ");
       rm = rm + dir_entry->d_name;
       rm_char = new char(rm.length()+1);
       strcpy(rm_char, rm.c_str());
       system(rm_char);
      }
      }
     closedir(directory);
    }
    

    Danke



  • benutze lieber std::remove (aus cstdio)



  • Hi,

    Der Fehler liegt zuerst nicht an "system()".
    Wie gesagt, die Datei kann nicht gesehen werden!
    Aber danke für den Hinweis.

    MfG



  • Aus einem anderen Fred von MFK:
    "Wenn du char-Zeiger mit == vergleichst, werden die Adressen verglichen, nicht die Inhalte... Benutz lieber std::string statt char*."
    Daher:
    if (dir_entry->d_name == std::string("test")) { ... }


Anmelden zum Antworten