Datei suchen und löschen
-
Hallo Leute,
ich möchte alle Festplatten nach einer bestimmten Datei durchsuchen, und diese löschen. Wie stelle ich das an?
Ich weiß das man so anfängt:
HANDLE fHandle; WIN32_FIND_DATA wfd; fHandle=FindFirstFile("c:\\*", &wfd);Mein Problem ist, wie kann ich mit mehreren Festplatten (bzw Partitionen) umgehen und die Datei anschließend löschen

-
noch eine Frage:
wenn ich dann eine Datei gefunden habe, wie kann ich den Pfad zu ihr ermitteln?
Also bei c:\ordner\test.tmp nur c:\ordner
Wirklich vielen Dank im Voraus !
-
alle laufwerke auflisten und überprüfen mit
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/base/getdrivetype.asp
beispiele unter google
http://www.google.de/search?q=winapi+laufwerke+auflisten&ie=UTF-8&hl=de&btnG=Google-Suche&meta=lr%3Dlang_delaufwerk durchsuchen
http://www.c-plusplus.net/forum/viewtopic.php?t=39396pfad zerlegen, je nachdem ob du mit char oder std::string arbeitest
std::string
http://cplus.kompf.de/artikel/strings.htmlbsp (nicht getestet)
std::string dir = "C:\\veververvea\verveavearvr"; int pos = pfad.find_last_of("\\"); std::string updir; updir = dir.substr(pos + 1);char am besten mit
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore98/html/_crt_strtok.2c_.wcstok.2c_._mbstok.asp
-
aber wie kommme ich denn erstmal an den Pfad???
-
wie komme ich an den Pfad einer mit FindFirstFile ermittelten Datei oder Ordners?
-
der dateiname steht in der struktur
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/base/win32_find_data_str.aspund den pfad bekommst du mit
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/base/getfullpathname.asp
-
ich möchte aber das Verzeichnis von einer Datei die ich per FindFirstFile ermittelt habe wissen!!
Ist das nicht möglich?

-
liesst du überhaupt meine beiträge

damit es auch du verstehst, habe ich mal dir forensuche benutzt (solltest du übrigens auch mal machen)
http://www.c-plusplus.net/forum/viewtopic.php?t=69425&highlight=rekursiv+findfirstfile
mach copy&paste, als nächstes machst du alle kommentare reaus und siehe was passiert
-
tut mir leid, aber das versteh ich nicht

Doch ich lese deine Beiträge und guck mir auch die Links an...

-
Was verstehst du nicht

-
flenders schrieb:
Was verstehst du nicht

irgendwie entsprechen die Antworten nicht meiner Frage:
Ich möchte einfach den Ordner einer Win32FindData Struktur herausbekommen!!!
Nicht von meiner App oder so
-
In der Struktur bekommst du das nicht direkt, aber was stört dich an GetFullPathName oder eben einfach selbst alles hinter dem letzen \ abschneiden

-
flenders schrieb:
In der Struktur bekommst du das nicht direkt, aber was stört dich an GetFullPathName oder eben einfach selbst alles hinter dem letzen \ abschneiden

In der Struktur steht aber doch gar nicht der komplette Dateiname!
da steht immer nur test.txt etc...Nicht c:\ordner\test.txt
-
Sorry, wusste das gerade nicht mehr so genau

In diesem Falle kannst du doch einfach den Pfad nehmen, den du für den FindFirstFile-Aufruf verwendet hattest - du musst eben am Ende noch * bzw. . wegschneiden
-
flenders schrieb:
Sorry, wusste das gerade nicht mehr so genau

In diesem Falle kannst du doch einfach den Pfad nehmen, den du für den FindFirstFile-Aufruf verwendet hattest - du musst eben am Ende noch * bzw. . wegschneiden
aber ich möchte doch die komplette Festplatte c: durchsuchen

-
Mit
fHandle=FindFirstFile("c:\\*", &wfd);durchsuchst Du aber nur den Root-Ordner (C:\) der Festplatte...
-
ja wie kann ich denn die komplette Festplatte nach einem ORdner durchsuchen, und diesen Pfad dann in einem String speichern??
Das kann doch nicht so schwer sein, oder?
-
Rodney schrieb:
Das kann doch nicht so schwer sein, oder?
Das wird schon etwas umfangreicher, denn du musst selber manuell alle Verzeichnisse rekursiv durchgehen

-
flenders schrieb:
Rodney schrieb:
Das kann doch nicht so schwer sein, oder?
Das wird schon etwas umfangreicher, denn du musst selber manuell alle Verzeichnisse rekursiv durchgehen

wenn jemand einen passenden Source hätte, wär ich sehr dankbar...

-
Mit Rekursion gibt es afaik eh ein Problem, aber das dürfte dir helfen:
http://www.rpi.edu/~pudeyo/articles/directory_walker.html