_findfirst _findnext



  • Hallo,
    ich habe folgendes Problem mit der Auflustung von Dateien und Ordnern.
    Ich habe eine Structur die mit Daten gefüllt werden soll, und zwar sollen Dateien und Ordnernamen in ein Array gespeichert werden. Mein Problem ist nun dass an jeder Stelle des Arrays immer der gleiche Eintrag steht. Die selbe Konstruktion gibt es auch für den BCB, dort funktioniert es auch, aber unter VC bekomme ich es nicht hin. Kann mir jemand Helfen woran das liegt.

    struct Daten
    {
    char* Titel;
    };
    
    Daten *Data;
    Data = new Daten[100];
    
    int pos = 1;
    
    _finddata_t foundfile;
    intptr_t f =_findfirst("C:\\*.*",&foundfile); 
    if ( -1L != f ) 
    do {	
    	Data[pos].Titel = foundfile.name ;
             pos++;
    	}
    
    } while (_findnext(f,&foundfile)==0 ); //Nächstes file
    _findclose(f); //Handle schliessen
    
    label1->Text = String(Data[5].Titel).ToString();
    


  • Andy1981 schrieb:

    Kann mir jemand Helfen woran das liegt.

    Ich bin mir ziemlich sicher das es dir jemand sagen kann, aber du bist hier im falschem Unterforum.

    Das sieht nach ISO C++ / WINAPI oder MFC aus. (naja ich weiß halt auch nicht genau, aber nach CLI mit .NET sieht das nicht aus!)

    Gruß

    Rudi G



  • Also der Code wird in einer Windows Form Anwendung benutzt. Damit arbeite ich erst seit ein paar Tagen. Das ist doch CLI?



  • Andy1981 schrieb:

    Das ist doch CLI?

    Das einzige was CLI ist, ist die letzte Zeile wo du dem Text Property nen String zuweist. Wenn du C++/CLI benutzt solltest du auch die entsprechenden .Net Klassen verwenden. Da bieten sich für Files und Directories die entspechenden Klassen im System.IO Namespace an, genauso wie du nicht ein unmanaged Array verwenden solltest sondern auch das Array von .Net usw. Nur weil man Code als C++/CLI kompiliert, ist es noch lange nicht C++/CLI.



  • Ok,

    aber das war eigentlich nicht meine Frage.



  • Wie kann man dann das Lesen eines Verzeichnisses noch realisieren?



  • Andy1981 schrieb:

    Wie kann man dann das Lesen eines Verzeichnisses noch realisieren?

    Da bieten sich für Files und Directories die entspechenden Klassen im System.IO Namespace an



  • OK
    kannst du mir noch sagen wie ich mehrere Filter setzen kann?

    array<String^>^files = gcnew array<String^>(test);
    String^ mp3 = "*.mp3";
    
    files = Directory::GetFileSystemEntries("C:\\",mp3);
    

    Jetzt bekomme ich alle mp3 aber ich will noch mehrere Mediendateien und Ordner.
    Desweiteren liefert mir die Methode den kompletten Dateipfad. Ich benötige diesen zwar auch aber auch nur den Namen der Datei.



  • Hat sich erledigt,habs hinbekommen.
    Danke.


Anmelden zum Antworten