Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge

C++ Dateien löschen

freak007 / 9 Antworten / Baumansicht Nickles

HI
Ich wollte fragen, wie man in c++ Dateien löschen kann (z.B. im Temporären Verzeichnis). Gibt mir bitte den Befehl. Danke im Voraus

bei Antwort benachrichtigen
PaoloP freak007 „C++ Dateien löschen“
Optionen

In Ansi c++ fällt mir da pauschal nur das FILE -Objekt ein aber ich weiss nicht ob das zum löschen taugt(eher nicht ;-) ). Musst mal in der Doku schauen.
Ansonsten solltest Du das Betriebs-System angeben unter dem Du arbeitest. Unter Windows heisst die Methode sinnvoller Weise DeleteFile.

Jedes mal wenn jemand "Cloud" sagt, verliert ein Engel seine Flügel.
bei Antwort benachrichtigen
freak007 PaoloP „In Ansi c fällt mir da pauschal nur das FILE -Objekt ein aber ich weiss nicht...“
Optionen

Ich arbeite mit Windows (XP) und benutze Microsoft Visual C++ 6. Danke

bei Antwort benachrichtigen
Dreamforger freak007 „Ich arbeite mit Windows XP und benutze Microsoft Visual C 6. Danke“
Optionen

#include <windows.h>

DeleteFile( "DateiName" );

Ein bischen trivial, oder? MSDN hast du wohl nicht installiert.

bei Antwort benachrichtigen
freak007 Nachtrag zu: „C++ Dateien löschen“
Optionen

Hey
Warum löscht er die Datei nicht, wenn ich das Verzeichnis angebe und die Datei?

bei Antwort benachrichtigen
Dreamforger freak007 „Hey Warum löscht er die Datei nicht, wenn ich das Verzeichnis angebe und die...“
Optionen

Hey
Warum versuchst du nicht etwas mehr Informationen über deinen Code rauszulassen?

bei Antwort benachrichtigen
freak007 Dreamforger „Hey Warum versuchst du nicht etwas mehr Informationen über deinen Code...“
Optionen

Ich möchte eigentlich nur ein programm schreiben, dass den Ordner Temp löscht!

bei Antwort benachrichtigen
PaoloP freak007 „Hey Warum löscht er die Datei nicht, wenn ich das Verzeichnis angebe und die...“
Optionen

Ich habe eine Eingebung.. jemand der zum löschen einer Datei in einem Forum fragen muss weiss sicher nicht das
DeleteFile("c:\\test.txt"); richtig ist
Das Backslash "\\" muss man doppelt setzen also 2x hintereindander.
Ich kann es leider nicht schreiben weil Nickles es nicht richtig darstellt.

----------------------------------------

Verdammt ich kann das hier nicht posten weil Nickles alles interpretieren will ... Haaaaalllo Nickles das hier ist das Coder-Forum, hier macht sich das echt schlecht mit dem interpretieren zwecks posten von Demo-Code.. Kann so ein VIP den Hr. Wölfer mal anstossen das hier sowas unpassend ist.






Jedes mal wenn jemand "Cloud" sagt, verliert ein Engel seine Flügel.
bei Antwort benachrichtigen
freak007 PaoloP „Ich habe eine Eingebung.. jemand der zum löschen einer Datei in einem Forum...“
Optionen

Kannst du ihn per e-mail schicken? X-ten@web.de

bei Antwort benachrichtigen
Dreamforger PaoloP „Ich habe eine Eingebung.. jemand der zum löschen einer Datei in einem Forum...“
Optionen

Erfahrungsgemäßt bekommt man hier von höchster Stelle eins auf den Deckel wenn man wagt Kritik, auch konstruktive, anzubringen. Ist mir schon oft genug passiert :-)

Zurück zum Thema:


#include <windows.h>
#include <stdlib.h>

void DeleteDirectory( char* dir, int delSubs = 0 );

void DeleteDirectory( char* dir, int delSubs)
{
char* all = new char[strlen(dir)+3];
strcpy(all, dir);
if (dir[strlen(dir)-1] != '\\\\' ) strcat(all, "\\\\");
strcat(all, "*");
WIN32_FIND_DATA s;
HANDLE h = FindFirstFile( all, &s );
if (h == INVALID_HANDLE_VALUE) return;

do
{
if ( s.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
if ((s.cFileName[ strlen( s.cFileName )-1] != '.' ) && delSubs )
{
DeleteDirectry( s.cFileName , 1 );
RemoveDirectory( s.cFileName );
}
}
else
{
DeleteFile( s.cFileName );
}
}
while( FindNextFile( h, &s) );
FindClose( h );

delete[] all;
}


Ich hab den Code nicht getestet, sollte aber funktionieren. Ruf DeleteDirectory( "C:\\\\temp", 1 ); auf und beschwer dich nachher nicht wenn alles in Temp weg ist. Falls der Code aus Gründen die sich mir entziehen auf deiner Platte randaliert ist das nicht mein Problem.
bei Antwort benachrichtigen