Söka efter filer via string c++

Permalänk
Medlem

Söka efter filer via string c++

Hej, jag tänkte ge mig på att försöka göra ett litet consoleprogram där man användaren skriver in en string för att söka igenom tillexempel c hårddisken ifall det finns någon fil där som matchar användarens string. Hur ska jag gå tillväga? Vilka funktioner ska ja använda mig av? Är det ifstream och ofstream som gäller här? Har sökt lite på google osv men hittar inte något att gå på. Så jag tänkte att jag tar hjälp av er SweClockare som hjälpt mig ett pra gånger innan

Permalänk

Tjena,

Bland Windows-api:erna finns bl.a. FindFirstFile och FindNextFile som kan användas om du inte har något emot att knyta dig till Windows.

Från msdn-sidan jag länkade:

Citat:

To examine files in a root directory, you can use "C:\*" and step through the directory by using FindNextFile.
To get the attributes of a root directory, use the GetFileAttributes function.

ifstream hjälper dig bara att läsa en fils innehåll, och är inte särskilt relevant för sök.

Så en naiv, plattformsberoende lösning använder FindFirstFile och FindNextFile för att hitta _alla_ (jag är inte själv påläst i nuläget, men tror det är så det fungerar. Möjligtvis kan funktionerna filtrera, läs på) filer, sedan tror jag att du själv får matcha de filer du hittar mot söksträngen. Och gissningsvis kommer du att behöva göra en rekursiv lösning för att undersöka undermappar till C:\ samt undermappar till undermapparna o.s.v.

Permalänk
Medlem
Skrivet av Antonovskij:

Tjena,

Bland Windows-api:erna finns bl.a. FindFirstFile och FindNextFile som kan användas om du inte har något emot att knyta dig till Windows.

Från msdn-sidan jag länkade:

ifstream hjälper dig bara att läsa en fils innehåll, och är inte särskilt relevant för sök.

Så en naiv, plattformsberoende lösning använder FindFirstFile och FindNextFile för att hitta _alla_ (jag är inte själv påläst i nuläget, men tror det är så det fungerar. Möjligtvis kan funktionerna filtrera, läs på) filer, sedan tror jag att du själv får matcha de filer du hittar mot söksträngen. Och gissningsvis kommer du att behöva göra en rekursiv lösning för att undersöka undermappar till C:\ samt undermappar till undermapparna o.s.v.

hmm, okey. Får ta en titt på det då! Tack för svar