Daten finden



  • Hi.

    Ich möchte von meiner platte alle z.B.: mp3s finden.
    Bekomme es aber einfach nicht hin.

    Habe es mal mit fstream probiert, jedoch ohne erfolg.

    Bin mom. so weit:

    #include <iostream>
    #include "windows.h"
    
    /* Search possible Datas */
    void main(void)
    {
    
      WIN32_FIND_DATA FileData;   // Data structure describes the file found
      HANDLE hSearch;             // Search handle returned by FindFirstFile
      TCHAR szMsg[100];           // String to store the error message
      TCHAR szDirPath[] = TEXT("TEXTRO");
    
      BOOL bFinished = FALSE;
    
      // Start searching in the root directory
      hSearch = FindFirstFile (TEXT("*.mp3"), &FileData);
      if (hSearch == INVALID_HANDLE_VALUE)
      {
        wsprintf (szMsg, TEXT("No files found."));
        return;
      }
    
      while (!bFinished)
      {
    
          //OpenFolderPath(FileData.cFileName);
          printf (FileData.cFileName);
    
        if (!FindNextFile (hSearch, &FileData))
        {
          bFinished = TRUE;
    
          if (GetLastError () == ERROR_NO_MORE_FILES)
          {
            wsprintf (szMsg, TEXT("Found all of the files."));
          }
          else
          {
            wsprintf (szMsg, TEXT("Unable to find next file."));
          }
        }
      }
    
       // Close the search handle.
       if (!FindClose (hSearch))
          wsprintf (szMsg, TEXT("Unable to close search handle."));
    
    }
    

    Bin für jede hilfe dankbar!
    mfg sibob

    MS Studio c++ 6



  • Sibob: Falsches Forum, aber schau Dir uU boost::filesystem & Co. an.



  • 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.



  • Dazu wirst du dann wohl FindNextFile für jedes Verzeichnis explizit aufrufen 🙄



  • Jop, allerdings gibt's längst nen Beispiel und hättest net posten müssen. 🙂

    Dateien aus Ordnern auflisten
    http://www.win-api.com/index.php?content=resources&KW=Dateien%20aus%20Ordner%20AUFLISTEN

    Ganz einfach als Startpfad C:\*.* einbauen... In der Funktion programmierst Du's logischerweise einfach so, dass wenn ein Verzeichnis kommt, rufst Du die selbe Funktion nochmal auf (rekursiv) um den Order zu durchsuchen.
    So sucht er dann die komplette Festplatte durch. Good luck



  • Benutz mal die Forensuche - ich hab irgendwas in Erinnerung, dass es Probleme gab, wenn FindFirstFile rekursiv aufgerufen wurde. Afaik war die Lösung, dass du dir die Verzeichnisse merkst und dann am Ende durchgehst 😉



  • Find ich am Ende umständlicher aber am Ende entscheidet eh er sich 😉
    Aber Probs sind mir da eigentlich nie aufgefallen?


Anmelden zum Antworten