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")) { ... }