AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Eine Pfadangabe "säubern"?

Ein Thema von Glados · begonnen am 11. Sep 2017 · letzter Beitrag vom 14. Sep 2017
Antwort Antwort
Glados
(Gast)

n/a Beiträge
 
#1

AW: Eine Pfadangabe "säubern"?

  Alt 12. Sep 2017, 11:15
Zitat:
Ich würd' erst prüfen, ob es funktioniert und nur wenn nicht einen Korrekturversuch starten.
Meinst du, ob das Verzeichnis bzw ob die Datei existiert?

Zitat:
Prüfst Du direkt nach der Eingabe durch den Anwender oder eher alles eingegebene zu einem späteren Zeitpunkt?
Ich prüfe während der Eingabe. Wenn es Fehleingaben gibt, wird das mitgeteilt.
Dieselben Eingaben werden später beim erneuten Auslesen für Arbeit XY wieder geprüft und wenn es Fehler gibt bekommt der Nutzer das auch mitgeteilt.

Zitat:
und zum Zeitpunkt der Eingabe weder Pfade noch Dateien existieren müssen, wird es schwierig.
Ich fahre mit meiner aktuellen Lösung recht gut. Pfade und Dateien existieren zu schätzungsweise 50%+ nicht während der Eingabe.

Zitat:
Klare Vorgaben machen, was als Eingabe zulässig ist und diese Vorgaben rigoros programmtisch auf Einhaltung überprüfen.
Das mache ich doch aktuell exakt so. Die Eingabe darf im UNC- oder Normalformat vorliegen. file:\\\ usw sind aber nicht erlaubt.
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#2

AW: Eine Pfadangabe "säubern"?

  Alt 12. Sep 2017, 11:35
Zitat:
Ich würd' erst prüfen, ob es funktioniert und nur wenn nicht einen Korrekturversuch starten.
Meinst du, ob das Verzeichnis bzw ob die Datei existiert?
ja

Zitat:
Prüfst Du direkt nach der Eingabe durch den Anwender oder eher alles eingegebene zu einem späteren Zeitpunkt?
Ich prüfe während der Eingabe. Wenn es Fehleingaben gibt, wird das mitgeteilt.
Dieselben Eingaben werden später beim erneuten Auslesen für Arbeit XY wieder geprüft und wenn es Fehler gibt bekommt der Nutzer das auch mitgeteilt.
Hier würd' ich prüfen, ob die angegebene Datei existiert.
Wenn nein, prüfen ob der Pfad existiert.
Wenn nein, prüfen, ob gemachte Vorgaben strikt eingehalten werden.

Zitat:
und zum Zeitpunkt der Eingabe weder Pfade noch Dateien existieren müssen, wird es schwierig.
Ich fahre mit meiner aktuellen Lösung recht gut. Pfade und Dateien existieren zu schätzungsweise 50%+ nicht während der Eingabe.
Dürfte weitgehend mit meinen oben gemachten Vorschlägen überprüfbar sein.

Zitat:
Klare Vorgaben machen, was als Eingabe zulässig ist und diese Vorgaben rigoros programmtisch auf Einhaltung überprüfen.
Das mache ich doch aktuell exakt so. Die Eingabe darf im UNC- oder Normalformat vorliegen. file:\\\ usw sind aber nicht erlaubt.
Ok: Du hast eine klare Vorgabe. Die muss rigoros eingehalten werden. Das kann man an den Nutzer kommunizieren und die Einhaltung überprüfen.

Das dürfte im Endergebnis dann schon passen.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Eine Pfadangabe "säubern"?

  Alt 12. Sep 2017, 18:14
@codehunter
Was ist denn das für ein Schätzchen?
file:///C:/Users/EinBenutzerName/Desktop/TopFolder/SubFolder1/SubSub/../../SubFolder2/SubSub/Datei...txt
Datei.1.1.txt ist klar, aber Datei...txt ?

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#4

AW: Eine Pfadangabe "säubern"?

  Alt 12. Sep 2017, 18:36
Ein sicherlich ungewöhnliches. Alles ab dem letzten Punkt ist Dateiendung.

. 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.

dir Verzeichnisname. führt zum gleichen Ergebnis wie dir Verzeichnisname

Es ist aberwitzig, was man mit Punkten in Pfadangaben für Verwirrung schaffen kann, auch wenn es syntaktisch vollkommen korrekt ist und anstandslos genutzt werden kann.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#5

AW: Eine Pfadangabe "säubern"?

  Alt 12. Sep 2017, 18:40
. 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.
also ist Datei...txt das gleiche wie ..\Datei.txt ?
Krass!!

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#6

AW: Eine Pfadangabe "säubern"?

  Alt 12. Sep 2017, 18:49
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.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

AW: Eine Pfadangabe "säubern"?

  Alt 12. Sep 2017, 20:40
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.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Glados
(Gast)

n/a Beiträge
 
#8

AW: Eine Pfadangabe "säubern"?

  Alt 12. Sep 2017, 21:01
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.
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.283 Beiträge
 
Delphi 12 Athens
 
#9

AW: Eine Pfadangabe "säubern"?

  Alt 14. Sep 2017, 08:29
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?
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz