FindFirst: soll keine versteke Dateien oder Verzeichnisse

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

FindFirst: soll keine versteke Dateien oder Verzeichnisse

Beitrag von pluto »

Hallo,
Ich möchte mit FindFirst nur Sichtbare Verzeichnisse und Dateien auflisten. Also keine Versteckten und/oder System Dateien/Verzeichnisse.

Wenn ich jetzt aber /home/pluto/*. auslese werden mir System Verzeichnisse und irgednwie werden sie Trozdem anzeigt. Hier mein Aktueller Code:

Code: Alles auswählen

procedure TForm1.FindAll(const dir:String;const typ:Byte = 0);
var
  sr:TSearchRec;
  item:TItem;
  s:String;
begin
  ListBox1.Clear; ListBox2.Clear;
  if typ = 0 then Edit2.Text:=dir;
 
  if typ = 1 then ComboBox1.Clear;
  s:='';
  if ComboBox2.itemindex > -1 then
    s:=UpperCase(TFilterItem(comboBox2.Items.Objects[combobox2.ItemIndex]).Filter);
 
  If FindFirst (dir + '*',faDirectory,sr)=0 then begin
    repeat
        with sr do begin
          If (Attr and faDirectory) = faDirectory then begin
            if typ = 1 then begin
              if (sr.name <> '..') and (sr.name <> '.') then begin
                item:=TItem.Create;
               item.dir:=dir+sr.name+'/';
               ComboBox1.Items.AddObject(sr.name,item);
             end;
           end; // if typ = 1
 
           if typ = 0 then begin
             if (sr.name <> '.') then begin
               item:=TItem.Create;
               if (sr.name <> '..') then
                 item.dir:=dir+sr.name+'/'
               else
                item.dir:=GetPrvDir1(dir);
 
               ListBox1.Items.AddObject(sr.name,item);
             end;
           end;
         end // if Attr and faDirectory
         else begin
           if typ = 0 then begin
             if (s = '') or (s = '*.*') or (Pos(Uppercase(ExtractFileExt(sr.name)),s) > 0) then
               Listbox2.Items.Add(sr.name);
           end;
         end;
 
       end;
 
    until FindNext(sr)<>0;
  end;
  if typ = 1 then
    ComboBox1.Items.AddObject('Dateisystem',Tobject('/'));
 
end;

Ist etwas viel ich weiß wohl.... aber das stammt aus einem heute wieder angefangen Projekt:
ich möchte mir mein eigene Öffnen und Speicher Dialog schreiben, weil ich finde die bei GTK1 dabei sind nicht so toll und GTk2 kann ich noch nicht verwenden, weil da für mich zu viele BUG's noch drin sind :(
Der Mode bedeutet einfach nur: Soll er jetzt Laufwerke aufliste ?
dann wird die Methode mit /media/ aufgerufen (im Moment)... evlt. werde ich dafür eine extra Procedure anlegen. Ist evlt. übersichtlicher *G*.
MFG
Michael Springwald

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Es gibt Dateiattribute für (fa)System und (fa)Hidden ...
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Ja ! aber sie Zeigen bei mir keine Wirkung !
MFG
Michael Springwald

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

wie hast du sie denn angewendet ?
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Bei diesem Aufruf hier:
If FindFirst (dir + '*',faDirectory,sr)=0 then begin
sollte eigentlich nur Verzeichnisse aufgelistet werden, und was erhalte ich ?
Dateien und Verzeichnisse.

Ich habe versucht manuell die Attribuete raus zu filtern mit:
If (Attr and faHiddin) = faHiddin then begin

Aber das zeigte auch keine Wirkung.
MFG
Michael Springwald

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Doch das geht direkt nach den Attributen sichen hab ich noch nie probiert aber über eine if abfrage gehts
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

könntest du mir bitte so eine if abfrage mal posten ?
weil bei mir hat es nicht geklappt(ich habe die if abfrage auch nicht mehr).
MFG
Michael Springwald

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Du hast doch selber eine gepostet
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Ja, aber die geht nicht ! sie zeigt keine Wirkung. d.h. es werden Trozdem verstekte Dateien und Verzeichnisse angezeigt !
MFG
Michael Springwald

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Du erzählst ma wieder Blödsinn mit genau diesem Ausdruck geht es. ich hab mich mal ne virtelstunde hingesetzt und ne kleine Testanwendung gebastelt. Pluto, erzähl nicht immer son quark vermute die Fehler lieber erstmal bei dir als bei anderen.
Dateianhänge
test.tar.gz
(2.64 KiB) 55-mal heruntergeladen
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Bei mir werden Trotzdem versteke Verzeichnisse angezeigt. und zwar im /home/pluto Verzeichnis. Ich habe die checkboxen natürlich auf Checked False gesetzt... alle beide. Trotzdem werden die Verzeichnisse und Dateien angezeigt.

Wenn ich im Dateimanager sage Versteckte Dateien verbergen geht das.
MFG
Michael Springwald

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

die sind nicht versteckt sondern fangen nur mit . an, das sind konfigurationsdateien die haben kein versteckt attribut
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

achso, und der Dateimanger weiß das. und beachtet das auch.... nagut, dann werde ich es auch so machen... Trotzdem Vielen Dank für deine Hilfe !
MFG
Michael Springwald

Antworten