FindFirst/FindNext Bsp funktioniert niht



  • Ich bin momentan dabei die Dateien in einem Ordner auszulesen. Dabei bin ich auf das Beispiel von BorlandBuilder gestoßen. Ich habe mir den Quellcode geschnappt, 7 Checkboxen, 1 Editfeld, 1 StringGrid und 1 Button ins Formular gezogen und den Quellcode zum ButtonClickEreignis hinzugefügt.
    Ich wollte mit dem Quellcode rumexperimentieren um schlauer zu werden, aber leider bekomme ich keine Informationen im StringGrid angezeigt.
    Ins Edit1-Feld trage ich z.b. "C:\WINDOWS" ein, makiere alle Checkboxen und klicke auf den Button, da steht dann in einem Feld "WINDOWS" und im nächsten Feld "0".
    Da ich leider mit FindFirst u. FindNext noch keinerlei Erfahrung habe, frage ich nun, was ich falsch mache.

    Habe ich die Pfadangabe falsch angegeben, oder was mache ich falsch?

    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
      TSearchRec sr;
      int iAttributes = 0;
      StringGrid1->RowCount = 1;
      iAttributes |= faReadOnly * CheckBox1->Checked;
      iAttributes |= faHidden * CheckBox2->Checked;
      iAttributes |= faSysFile * CheckBox3->Checked;
      iAttributes |= faVolumeID * CheckBox4->Checked;
      iAttributes |= faDirectory * CheckBox5->Checked;
      iAttributes |= faArchive * CheckBox6->Checked;
      iAttributes |= faAnyFile * CheckBox7->Checked;
      StringGrid1->RowCount = 0;
      if (FindFirst(Edit1->Text, iAttributes, sr) == 0)
    
      {
        do
        {
          if ((sr.Attr & iAttributes) == sr.Attr)
          {
            StringGrid1->RowCount = StringGrid1->RowCount + 1;
            StringGrid1->Cells[1][StringGrid1->RowCount-1] = sr.Name;
            StringGrid1->Cells[2][StringGrid1->RowCount-1] = IntToStr(sr.Size);
          }
        } while (FindNext(sr) == 0);
        FindClose(sr);
      }
    }
    


  • Hallo

    FindFirst basiert auf der DOS-Dateisuche. Du must also einen Platzhalter verwenden.
    Gib in das Edit mal "C:\WINDOWS\*" ein, dann werden alle Dateien und Unterverzeichnisse aus dem Windows-Verzeichniss angezeigt.

    bis bald
    akari



  • Super das klappt.
    Danke für die schnell hilfe.


Anmelden zum Antworten