CFileFind??



  • Hi,
    ich versuche mit CFileFind alle Unterordner eines Ordners auszulesen, das klappt auch ganz gut, nur liest er einfach keine Ordner ein, die "THBS" heißen? Was soll der scheiß?? Woran kann das liegen?

    MfG
    Daniel



  • Zeig mal den Quelltext der Zeigt wie Du einliest.

    Ich tippe eher darauf das der Ordner das letzte gefundene Element ist und die Schleife das nicht berücksichtigt.



  • Hallo !

    Evtl. ist dieser THBS-Ordner der erste oder letzte, der gefunden wird und dir fehlt noch ein einziger Schleifendurchlauf...
    ...oder ein FindNextFile oder so fehlt am Anfang oder Ende...

    Ich glaube nicht, dass es am Namen "THBS" liegt.

    Tschüss

    [edit]
    ...war jemand schneller 😃
    [/edit]

    [ Dieser Beitrag wurde am 07.05.2003 um 16:21 Uhr von isabeau editiert. ]



  • doch das liegt am Namen, wenn ich nämlich die Datei unbenenne z.B. in "_THBS" findet er sie wieder. Microsoft ... 😡



  • Nope, mit der Namensumbenennung steht es nur an einer anderen stelle.

    Zeig uns den Quelltext wie Du einliest anderst können wir Dir nicht helfen!



  • Den Quellcode kann ich erst zeigen, wenn ich wieder an meinem PC bin. Aber es liegt nicht am Code. Wenn ich die Datei unbenenne werden alle Ordner richtig ausgelesen



  • Original erstellt von <Danielxx>:
    Den Quellcode kann ich erst zeigen, wenn ich wieder an meinem PC bin. Aber es liegt nicht am Code. Wenn ich die Datei unbenenne werden alle Ordner richtig ausgelesen

    Sobald Du die Datei z.B. umbenennst taucht sie an einer anderen Stelle auf. Probs gibts meistens bei der ersten oder letzten Datei / Verzeichnis.

    Dir fehlt nach umbenennen sicherlich nun eine andere Datei.

    Teste Deine Programmierung in einem Verzeichnis mit nur einer Datei bzw. einem Verzeichnis.

    Hier das Beispiel aus der MSDN:

    #include <afx.h>
    #include <iostream>
    
    using namespace std;
    
    void Recurse(LPCTSTR pstr)
    {
       CFileFind finder;
    
       // build a string with wildcards
       CString strWildcard(pstr);
       strWildcard += _T("\\*.*");
    
       // start working for files
       BOOL bWorking = finder.FindFile(strWildcard);
    
       while (bWorking)
       {
          bWorking = finder.FindNextFile();
    
          // skip . and .. files; otherwise, we'd
          // recur infinitely!
    
          if (finder.IsDots())
             continue;
    
          // if it's a directory, recursively search it
    
          if (finder.IsDirectory())
          {
             CString str = finder.GetFilePath();
             cout << (LPCTSTR) str << endl;
             Recurse(str);
          }
       }
    
       finder.Close();
    }
    
    void main()
    {
       if (!AfxWinInit(GetModuleHandle(NULL), NULL, GetCommandLine(), 0)
          cout << "panic!" << endl;
       else
          Recurse(_T("C:"));
    }
    

    Schick das mal da hin wo Du das THBS liegen hast. Ich bin mir sicher das Du es dann siehst.



  • Danke, jetzt hab ichs.
    Ich hatte folgendes vergessen:

    if(finder.IsDots())
    continue;



  • 😉


Anmelden zum Antworten