Delphi-PRAXiS
Seite 4 von 4   « Erste     234   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Eine Pfadangabe "säubern"? (https://www.delphipraxis.net/193807-eine-pfadangabe-saeubern.html)

p80286 12. Sep 2017 18:40

AW: Eine Pfadangabe "säubern"?
 
Zitat:

Zitat von nahpets (Beitrag 1380947)
. ist das aktuelle Verzeichnis, .. das darüberliegende und ...txt ein gültiger Dateiname.
... ist allerdings kein gültiger Dateiname, denn .. ist das drüberliegende Verzeichnis und der dritte . ist die Trennung zwischen .. und der nicht vorhandenen Dateiendung.

:gruebel: also ist Datei...txt das gleiche wie ..\Datei.txt ?
Krass!!

Gruß
K-H

nahpets 12. Sep 2017 18:49

AW: Eine Pfadangabe "säubern"?
 
Nein, das ist nicht das Gleiche. Es können aber in einem Dateinamen beliebig viele Punkte enthalten sein. Ein Dateiname darf sogar mit mehreren Punkten beginnen.
Damit kein Konflikt mit . .. ... auftritt muss "irgendwo am Ende" noch was anderes, als ein Punkt folgen, was grundsätzlich in Dateinamen zulässig ist.

Luckie 12. Sep 2017 20:40

AW: Eine Pfadangabe "säubern"?
 
Einfache Lösung: Einen "Öffnen-Dialog" bereitstellen und keine Eingabe zu lassen. Vorteil: Man braucht den Pfad nicht zu validieren. Nachteil: Ein 'Reinkopieren' geht nicht. Lässt man eine Eingabe zu, hat man eventuell syntaktisch ungültige Pfade. Kann man versuchen abzufangen mit 'Bereinigen' oder 'Säubern'. Aber das ist nicht so einfach, wie wir gesehen haben. Will man es richtig machen, bedeutet das einen ziemlichen Aufwand. Und jeder Kompromiss endet nur in einer halb herzigen Umsetzung.

Man kann jetzt überlegen. Sind meine Anwender technisch so versiert, dass sie einen fehlerhaften Pfad korrigieren können? Oder sind es DAUs, die ich mit einer Fehlermeldung überfordere? Könnte ein nicht korrekter Pfad eine Sicherheitslücke bedeuten? Könnte ein nicht korrekter Pfad das Programm 'aus dem Tritt' bringen?

Ein interessantes, nicht triviales Problem.

Glados 12. Sep 2017 21:01

AW: Eine Pfadangabe "säubern"?
 
Zitat:

Man kann jetzt überlegen. Sind meine Anwender technisch so versiert, dass sie einen fehlerhaften Pfad korrigieren können? Oder sind es DAUs, die ich mit einer Fehlermeldung überfordere? Könnte ein nicht korrekter Pfad eine Sicherheitslücke bedeuten? Könnte ein nicht korrekter Pfad das Programm 'aus dem Tritt' bringen?
Ich denke das triffts auf den Punkt genau.

Ich bin für letzteres, also für die DAUs und Fehlermeldungen/Auto-Korrekturen unter bestimmten Regeln soweit wie möglich.

Codehunter 14. Sep 2017 08:29

AW: Eine Pfadangabe "säubern"?
 
Was machst du, wenn deine Putzfrau beim Saubermachen auf eine Konstellation trifft, wo ein "unsauberer" Pfad bereinigt auf mehrere real existierende Verzeichnisse trifft? Zeigst du dann eine Auswahl an, welche der Möglichkeiten denn nun die richtige sein soll? Oder pickst du dir nach dem Zufallsprinzip eine der Varianten heraus?

Ich denke, das führt zu nichts. Denn einerseits willst du dem Anwender die Möglichkeit einer Freitext-Eingabe ermöglichen, andererseits aber unterstellst du ihm totale Blödheit. Vielleicht solltest du mit einer Zielgruppen-Analyse beginnen und dann entscheiden, welche Art Pfadeingabe am besten geeignet ist.

Mir persönlich würde jedenfalls ein Programm auf den Keks gehen und schleunigst ausgemustert werden, das mir meine mühsam handgetippten Pfade verbiegt. Warum? Ganz einfach: Weil ich Vertipper im Fehlerfall treffsicherer selbst korrigiere.

Letztlich reflektiert ein Dateipfad ein real exisitierendes Dateisystem. Warum sollte man die technischen Möglichkeiten nicht nutzen und den Anwender grafisch auswählen lassen? Oder geht es dir mehr darum, noch nicht existierende Ordnerstrukturen z.B. mit ForceDirectories anzulegen?


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:33 Uhr.
Seite 4 von 4   « Erste     234   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz