[GELÖST] Problem mit FindAllFiles

Benutzeravatar
Swirl
Beiträge: 93
Registriert: Fr 7. Aug 2015, 14:05
OS, Lazarus, FPC: Win 10/11/ Mint 21.3 / Lazarus 30 / FPC 3.2.2
CPU-Target: x86_64, ARM Cort.-A7
Wohnort: Schwerte NRW

[GELÖST] Problem mit FindAllFiles

Beitrag von Swirl »

Hallo

habe ein Problem mit FindAllFiles unter Linux (Mint 20.3 / Una)

Unter Windows...

Code: Alles auswählen

DirStringlist := FindAllFiles('D:\Swirl\Desktop\Test\dummy', '*.*', False);
...klappt das hervorragend:

Bild

Unter Mint bleibt die Liste leider leer!

Code: Alles auswählen

DirStringlist := FindAllFiles(/home/swirl/Schreibtisch/Test/dummy', '*.*', False);
Wie man sieht, ist der Pfad (in nemo getestet) ok.

Bild

Weiss jemand Rat?
LG,
Michael
Zuletzt geändert von Swirl am Di 7. Jun 2022, 18:49, insgesamt 1-mal geändert.
=> Mint 21.3 “Virginia” - Win 10/11 - Lazarus 3.0 - FPC 3.2.2

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: Problem mit FindAllFiles

Beitrag von theo »

Das liegt vllt. einfach daran, dass es dort keine Files gibt, die dem Muster '*.*' entsprechen.
Versuch es mal mit '*'

Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: Problem mit FindAllFiles

Beitrag von Winni »

Hi!

Genau!

Du suchst *.*

Dass bedeutet, dass der Dateiname einen Punkt enthalten muss.

Die Maske für ALLE Dateien ist schlicht *

Mal die DOS-/Windows-Unsitten abgewöhnen.

Winni

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Problem mit FindAllFiles

Beitrag von Mathias »

Ich habe gerade folgende Zeile vor mir:

Code: Alles auswählen

  fsl := FindAllFiles('/home/tux/fpcupdeluxe_avr5/fpcsrc/packages/fv/src', '*.*');
Da wird alles eingelesen.

Unter Linux Mint.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
Swirl
Beiträge: 93
Registriert: Fr 7. Aug 2015, 14:05
OS, Lazarus, FPC: Win 10/11/ Mint 21.3 / Lazarus 30 / FPC 3.2.2
CPU-Target: x86_64, ARM Cort.-A7
Wohnort: Schwerte NRW

Re: Problem mit FindAllFiles

Beitrag von Swirl »

Das war's (*)...
Und besten Dank auch für den Ohrenwatscher, Winni... :twisted:
LG,
Michael
=> Mint 21.3 “Virginia” - Win 10/11 - Lazarus 3.0 - FPC 3.2.2

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: [GELÖST] Problem mit FindAllFiles

Beitrag von Mathias »

Jetzt sehe ich es, deine Dateien haben keine Extension, daher ging *.* nicht.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: [GELÖST] Problem mit FindAllFiles

Beitrag von Winni »

Mathias hat geschrieben:
Di 7. Jun 2022, 19:17
Jetzt sehe ich es, deine Dateien haben keine Extension, daher ging *.* nicht.
Hi!

Löst Euch doch bitte mal von Euren DOS-Erfahrungen die da seinerzeit lauteten

Name Punkt Suffix

auch bekannt als 8.3 wg der Maximal-Lämge der Bestandteile.

Das galt für DOS und frühe Windows-Versionen.

Inzwischen ist auch Windows in der normalen Computer-Welt angekommen:

Ein DateiName muss keinen Punkt enthalten
Ein DateiName muss kein Suffix enthalten
Der Punkt ist ein beliebiges Zeichen und darf beliebig oft vorkommen

Inzwischen kann man sogar Emoticons in Dateinamen in NTFS unterbringen.
ext2/ext3/ext4 kann das schon ewig.

Winni

Soner
Beiträge: 623
Registriert: Do 27. Sep 2012, 00:07
OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
CPU-Target: x86_64-win64
Wohnort: Hamburg

Re: [GELÖST] Problem mit FindAllFiles

Beitrag von Soner »

Winni hat geschrieben:
Di 7. Jun 2022, 23:44
Mathias hat geschrieben:
Di 7. Jun 2022, 19:17
Jetzt sehe ich es, deine Dateien haben keine Extension, daher ging *.* nicht.
Hi!

Löst Euch doch bitte mal von Euren DOS-Erfahrungen die da seinerzeit lauteten

Name Punkt Suffix

auch bekannt als 8.3 wg der Maximal-Lämge der Bestandteile.

Das galt für DOS und frühe Windows-Versionen.

Inzwischen ist auch Windows in der normalen Computer-Welt angekommen:

Ein DateiName muss keinen Punkt enthalten
Ein DateiName muss kein Suffix enthalten
Der Punkt ist ein beliebiges Zeichen und darf beliebig oft vorkommen

Inzwischen kann man sogar Emoticons in Dateinamen in NTFS unterbringen.
ext2/ext3/ext4 kann das schon ewig.

Winni
MS-Dos hat es von CP/M übernommen. Es ist eine gute Erfindung, sonst würde ja Linux für dynamische Bibliotheken die Erweiterung '.so' nicht verwenden, und Macos '.dynlib' oder '.app'. :D

Wenn du in dein Programm beim Dateiöffnen-Dialog nur Grafikdateien oder Musikdateien anzeigen möchtest, wie machst du es unter Linux oder Macos ohne die Erweiterungen zu verwenden?

Benutzeravatar
h-elsner
Lazarusforum e. V.
Beiträge: 259
Registriert: Di 24. Jul 2012, 15:42
OS, Lazarus, FPC: LINUX Mint21.1, Win10, Lazarus 2.2.4, FPC3.2.2
CPU-Target: X86-64; arm 32bit
Wohnort: Illertissen
Kontaktdaten:

Re: [GELÖST] Problem mit FindAllFiles

Beitrag von h-elsner »

Winni hat geschrieben:
Di 7. Jun 2022, 23:44
Inzwischen kann man sogar Emoticons in Dateinamen in NTFS unterbringen.
ext2/ext3/ext4 kann das schon ewig.

Es gibt nichts, was mehr hassenswert wäre. :D

PascalDragon
Beiträge: 825
Registriert: Mi 3. Jun 2020, 07:18
OS, Lazarus, FPC: L 2.0.8, FPC Trunk, OS Win/Linux
CPU-Target: Aarch64 bis Z80 ;)
Wohnort: München

Re: Problem mit FindAllFiles

Beitrag von PascalDragon »

Winni hat geschrieben:
Di 7. Jun 2022, 16:32
Die Maske für ALLE Dateien ist schlicht *
Man könnte auch einfach System.AllFilesMask verwenden. Für Amiga-likes ist es nämlich #? ;)
Winni hat geschrieben:
Di 7. Jun 2022, 23:44
Inzwischen kann man sogar Emoticons in Dateinamen in NTFS unterbringen.
ext2/ext3/ext4 kann das schon ewig.
NTFS ist einfach nur auf UTF-16 code units angelegt, das heißt du kannst auch ohne Probleme ein Surrogate Pair (was viele Emojis ja sind) in einem NTFS 1.0 unterbringen. Ob es dann richtig dargestellt wird, steht auf einem anderen Blatt, aber das Dateisystem selbst kann dies von vornherein und der entsprechende Teil hat sich zwischen den Versionen auch nicht geändert. Was das Betriebssystem jedoch draus macht, das hat sich geändert (nämlich mit Windows 2000, als von UCS-2 auf UTF-16 umgestellt wurde).
FPC Compiler Entwickler

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: [GELÖST] Problem mit FindAllFiles

Beitrag von Socke »

Soner hat geschrieben:
Mi 8. Jun 2022, 00:20
Wenn du in dein Programm beim Dateiöffnen-Dialog nur Grafikdateien oder Musikdateien anzeigen möchtest, wie machst du es unter Linux oder Macos ohne die Erweiterungen zu verwenden?
Wie wäre es mit MIME-Types? Die sind unter Linux-Desktops durchaus gebräuchlicher als Dateiendungen.
freedesktop.org shared-mime-info-spec hat geschrieben:KDE: The KDE libraries implement the MIME spec to provide MIME information to all KDE applications.
GTK+ file selector: The new file selector in GTK+-2.4 uses the MIME spec to determine icons in it.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: [GELÖST] Problem mit FindAllFiles

Beitrag von theo »

Socke hat geschrieben:
Mi 8. Jun 2022, 13:42
Wie wäre es mit MIME-Types? Die sind unter Linux-Desktops durchaus gebräuchlicher als Dateiendungen.
Das ist so. Man könnte auch sagen, der Linux-Desktop benötigt die Dateinamenserweiterungen nicht.
Deshalb zeigt z.B. Dolphin auch ohne diese die richtigen Typen an.

mime_dolphin.png
mime_dolphin.png (17.02 KiB) 2099 mal betrachtet
Allerdings haben die Dateinamenserweiterungen in diesem Fall den Vorrang!

Auf der Kommandozeile geht z.B.
file --mime-type -b fpcupdeluxe-x86_64-linux

Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: [GELÖST] Problem mit FindAllFiles

Beitrag von Winni »

Hi!

Und aus der Frühzeiten von Uix gibt es den soeben von Theo erwähnten Befehl

file [Dateiname]

Der sieht in seiner simplesten Form in den Header der Datei ob er ein bekanntes Muster erkennt.

Fast alle Datei-Typen besitzen im Header eine spezielle Kennung, meistens 3 oder 4 byte lang.

Die gilt z.B. für BMP, WAV, TIF, JPG, MP3 und viele, viele andere.

Winni

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: [GELÖST] Problem mit FindAllFiles

Beitrag von Mathias »

Für uns Menschen macht die Extension immer noch Sinn. Man sieht auf den ersten Blick, um was für Dateien sich handelt.

Wo Linux und Windoof noch einen riessen Unterschied hat. Das einte OS ignoriert gross und Kleinschreibung. So wie bei C und Pascal.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Soner
Beiträge: 623
Registriert: Do 27. Sep 2012, 00:07
OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
CPU-Target: x86_64-win64
Wohnort: Hamburg

Re: [GELÖST] Problem mit FindAllFiles

Beitrag von Soner »

Socke hat geschrieben:
Mi 8. Jun 2022, 13:42
Soner hat geschrieben:
Mi 8. Jun 2022, 00:20
Wenn du in dein Programm beim Dateiöffnen-Dialog nur Grafikdateien oder Musikdateien anzeigen möchtest, wie machst du es unter Linux oder Macos ohne die Erweiterungen zu verwenden?
Wie wäre es mit MIME-Types? Die sind unter Linux-Desktops durchaus gebräuchlicher als Dateiendungen.
freedesktop.org shared-mime-info-spec hat geschrieben:KDE: The KDE libraries implement the MIME spec to provide MIME information to all KDE applications.
GTK+ file selector: The new file selector in GTK+-2.4 uses the MIME spec to determine icons in it.
Ich kenne MIME-Types. Aber das löst mein Problem mit dem Dateidialog nicht.

Antworten