Ordner Inhalt löschen
-
Hi
Ich bin C++ Neuling! Um zu üben habe ich folgendes "Programm" geschrieben:
#include <stdio.h> #include <windows.h> #include <string.h> typedef struct _WIN32_FIND_DATA { // wfd DWORD dwFileAttributes; FILETIME ftCreationTime; FILETIME ftLastAccessTime; FILETIME ftLastWriteTime; DWORD nFileSizeHigh; DWORD nFileSizeLow; DWORD dwReserved0; DWORD dwReserved1; TCHAR cFileName[ MAX_PATH ]; TCHAR cAlternateFileName[ 14 ]; }; WIN32_FIND_DATA wfd; HANDLE fHandle; TCHAR TempPath[] = {"C:\\Dokumente und Einstellungen\\Besitzer\\Desktop\\Neuer Ordner\\*"}; int main () { fHandle=FindFirstFile(TempPath,&wfd); while (FindNextFile(fHandle,&wfd)) { //http://www.cplusplus.com/ref/cstdio/remove.html if( remove(wfd.cFileName) == -1 ) perror( "Error deleting file" ); else puts( "File successfully deleted" ); return 0; } FindClose(fHandle); }
Jedoch funktioniert der Code nicht! Weshalb?
Lg
-
keine ahnung. was soll es machen? was macht es? kommen fehlermeldungen? sagt der compiler irgendwas?
-
Hi
Der Code sollte alle Datein in dem angegebenen Pfad löschen. Der Compiler compiliert fehlerlos. Als Ausgabestring erhalte ich: Error deleting file: Permission denied. Ich habe Adminrechte, der Inhalt sollte also problemlos gelöscht werden können.
Lg
-
dann versuch doch mal die datei von hand zu löschen...
-
Hi
Das manuelle Löschen funktioniert. Der Code ist irgendwie nicht richtig oder unfollständig.
Lg
-
#include <iostream.h> #include <windows.h> #include <stdio.h> #include <string.h> typedef struct _WIN32_FIND_DATA { // Struktur für Find*File DWORD dwFileAttributes; FILETIME ftCreationTime; FILETIME ftLastAccessTime; FILETIME ftLastWriteTime; DWORD nFileSizeHigh; DWORD nFileSizeLow; DWORD dwReserved0; DWORD dwReserved1; TCHAR cFileName[ MAX_PATH ]; TCHAR cAlternateFileName[ 14 ]; }; WIN32_FIND_DATA wfd; HANDLE fHandle; char TempPath1[] = {"C:\\Neuer Ordner\\*"}; char TempPath2[] = {"C:\\Neuer Ordner\\"}; char* WholePath; char* add(char*); int main () { cout << "Direction: " << TempPath2 << "\n"; fHandle=FindFirstFile(TempPath1,&wfd); // erstes Handle holen, öffnen FindNextFile(fHandle,&wfd); // zweites überspringen weil :/. while (FindNextFile(fHandle,&wfd)) // alle Datein durchspielen { if ( remove(add(wfd.cFileName)) == -1 ) // löschen { cout << "Error: not deleted file\n"; } else { cout << "File successfully deleted\n" ; } } FindClose(fHandle); // Handle abschliessen } char* add( char *FileName ) // Funktion für String Addition { WholePath = new char[strlen(TempPath2)+strlen(FileName)+1]; // Länge festlegen strcpy(WholePath, TempPath2); // erster String rein kopieren strcat(WholePath, FileName); // zweiter String anhängen cout << "Filename: " << FileName << "\n"; return WholePath; delete []WholePath; }
Entstand nach einigen Überlegungen, nach einem guten Mitagessen.
Lg
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.