Directory Klasse



  • Also in der Hilfe steht:

    Macht statische Methoden zum Erstellen, Verschieben und Auflisten in Verzeichnissen und Unterverzeichnissen verfügbar. Diese Klasse kann nicht geerbt werden. 
    
    Namespace: System.IO
    Assembly: mscorlib (in mscorlib.dll)
    
    [...]
    
    C++ 
    [ComVisibleAttribute(true)] 
    public ref class Directory abstract sealed
    
    [...]
    
    Verwenden Sie die Directory-Klasse für typische Operationen, z. B. das Kopieren, Verschieben, Umbenennen, Erstellen und Löschen von Dateien. Sie können mithilfe der Directory-Klasse auch DateTime-Informationen in Bezug auf den Dateizugriff, die Dateierstellung sowie das Schreiben in Verzeichnisse abrufen und festlegen.
    
    Da alle Directory-Methoden statisch sind, kann die Verwendung einer Directory-Methode effektiver als die Verwendung einer entsprechenden DirectoryInfo-Instanzmethode sein, wenn nur eine Aktion ausgeführt werden soll. Für die meisten Directory-Methoden ist der Pfad zum bearbeiteten Verzeichnis erforderlich.
    [...]
    

    Aber was heißt das genau? Hab Codegear 2007;



  • Tja, gute Frage, ich hab auch nur den BCB6, aber diese Klasse ist definitiv aus dem .NET-Framework.



  • Die Hilfe bei Codegear ist absoluter mist. bei BCB6 hab ich viel mehr gefunden.

    aber egal.

    Kann mir denn jemand sagen wie ich an die Ordnernamen aus einem bestimmten Verzeichnis komme.



  • Schau mal unter FindFirst, FindNext, FindClose und TSearchRec in der Hilfe nach. Da gibt es auch ein Beispiel (falls das in Deiner Version nicht mehr dabei bist, sag Bescheid, dann poste ich es hier).



  • Die Funktionsbeschreibungen sind zwar dabei, aber ein beispiel wäre echt ne schöne sache. Das ist hier leider nicht vertreten.

    Danke



  • In diesem Beispiel befinden sich ein Eingabefeld, eine Schaltfläche, ein String-Gitter und sieben Kontrollkästchen in einem Formular. Die Kontrollkästchen entsprechen den sieben möglichen Dateiattributen. Beim Klicken auf die Schaltfläche wird der in das Eingabefeld eingegebene Pfad nach Dateien mit den angegebenen Attributen durchsucht. Name und Größe der übereinstimmenden Dateien werden dann in das String-Gitter eingefügt.

    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);
      }
    }
    


  • Danke,

    Ich hab das jetzt mal auf meine bedürfnisse angepasst und festgestellt das es nicht funktioniert 😞 😕

    TSearchRec sr;
    	int Attribut = faAnyFile;
    	if (FindFirst("c:\\",Attribut  , sr) == 0)
    	{
    		do
    		{
    			if ((sr.Attr &   Attribut) == sr.Attr)
    				ListBox1->Items->Add(sr.Name) ;
    		}
    		while(FindNext(sr) == 0);
    
    		FindClose(sr);
    	}
    

    Dabei zeigt der mir gar nichts an. Auch nicht wenn ich andere Attribute ausprobiere.



  • Naja, wer lesen kann ist im vorteil.

    das darf nicht c:\\ sein, sondern c:\*.* Dann findet der auch was.

    Danke für die Hilfe!!!



  • Kann es sein das das ganze mit Netzlaufwerken nicht so schön funktioniert?

    ich kann mir auf nem netzlaufwerk zwar schon alle daten mit faAnyFile anzeigen lassen, aber bei faDirectory bleibt alles leer.

    Hat da jemand einen rat?



  • Funktioniert bei mir problemlos. Win XP Pro, BCB 6, Netzwerlaufwerk über Samba angebunden.


Anmelden zum Antworten