AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Verständnisfrage zu fdoForceFileSystem

Verständnisfrage zu fdoForceFileSystem

Ein Thema von Guido Eisenbeis · begonnen am 1. Jan 2020 · letzter Beitrag vom 2. Jan 2020
Antwort Antwort
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.398 Beiträge
 
Delphi 12 Athens
 
#1

AW: Verständnisfrage zu fdoForceFileSystem

  Alt 1. Jan 2020, 22:36
Es kommt drauf an.
Ordnerauswahl für einen Schreibzugriff ausschließlich auf lokale Pfade, da könnte fdoForceFileSystem nicht schaden. (Lesen geht fast immer, aber schreiben eventuell nicht ... siehe HTTP)

Ich persönlich hab diese Option noch nie benutzt und es gab bissher auch noch keine Probleme.

ofPathMustExist aktiviere ich eigentlich immer. (neue Verzeichnisse müssen dann vorher explizit erstellt werden, was in dem Dialog ja auch geht)
Für Öffnendialoge ist ofFileMustExist immer aktiv, weil die Datei muß ja sowieso existieren und der Fehler wird sofort gemeldet.
Bei Speicherndialogen nutze ich machmal ofOverwritePrompt, damit der Nutzer nicht irgendwas "ausversehn" bzw. unbemerkt überschreibt. (es sei denn Überschreiben ist das Standardverhalten)

ofNoTestFileCreate ist auch nahezu immer gesetzt, denn muß man bei WriteOnly-Laufwerken beachten, was z.B. auch auf ein Netzlaufwerk zum NAS zutrifft oder ganz speziell auf WORM, welche eine Versionierung vornimmen.
(bei ofNoTestFileCreate erstellt und löscht der Dialog die Datei einmal, was blöd endet, wenn sich die Datei nicht mehr löschen oder verändern lässt
und auch im Log tauchen dann unnötige Zugriffe auf)


Wie gesagt, meistens wird fdoForceFileSystem nicht benötigt. Es wäre auch etwas hinderlich, wenn man Netzwerkpfade erlauben möchte.
MSDN-Library durchsuchenCreateFile, TFileStream, LoadFromFile usw. kommen mit sehr ... sehr viel zurecht, wie UNC und sogar FTP, HTTP usw. wurde von Microsoft implementiert.

Ich weiß nicht mehr wie, aber man kann in diesem Dialog auch Drucker und Scanner auflisten lassen.
Beim Speichern einer Datei würde es mit soeinem Pfad eventuell ein paar Probleme geben.

Falls du mit IShellItem und dessen API und Stream-Zugriffen arbeitest, dann kann praktisch alles verwendet werden.
.FileName -> .ShellItem
.Files -> .ShellItems

Aber standardmäßig listet dieser Dialog sowieso nur Dinge auf, zu denen es einen schönen Pfad im Dateisystem gibt, welcher sich über .FileName auslesen und mit den meisten FileAPIs verwenden lässt.
Deswegen bemerkst du bei deinen Tests wohl auch keinen Unterschied.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 1. Jan 2020 um 22:45 Uhr)
  Mit Zitat antworten Zitat
Guido Eisenbeis

Registriert seit: 9. Apr 2006
389 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Verständnisfrage zu fdoForceFileSystem

  Alt 2. Jan 2020, 01:24
Aber standardmäßig listet dieser Dialog sowieso nur Dinge auf, zu denen es einen schönen Pfad im Dateisystem gibt, welcher sich über .FileName auslesen und mit den meisten FileAPIs verwenden lässt.
Deswegen bemerkst du bei deinen Tests wohl auch keinen Unterschied.
Somit lasse ich fdoForceFileSystem beim Aufruf weg. Danke bis hierhin!

Du hast einen wichtigen Punkt angesprochen: ofNoTestFileCreate (besser gesagt: Testen auf Schreibrechte ist gewünscht).

Wie du dir wohl schon aus meinen beiden Threads zusammengereimt hast, kann der User mit meinem Programm einen Ziel-Ordner auswählen (TFileOpenDialog, fdoPickFolders), in den dann Dateien und Unter-Ordner kopiert werden. Dazu wäre ist es notwendig, Schreibrechte im Ziel-Ordner zu haben. Kann man das gleich mit dem TFileOpenDialog prüfen? Gibt es vielleicht ein Flag, mit dem nur Ordner mit Schreibrecht ausgewählt werden können? Falls nicht, mache ich dafür einen anderen Thread auf (falls ich's nicht selbst rausfinde).

Wichtig: Schreibrecht ist mit normalen User-Rechten gemeint, also ohne Admin-Rechte.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.398 Beiträge
 
Delphi 12 Athens
 
#3

AW: Verständnisfrage zu fdoForceFileSystem

  Alt 2. Jan 2020, 01:56
Ich wusste es doch.
Hatte es anfangs auch andersrum geschrieben und dacht mir dann, andersrum klingt es richtiger. (nächstes Mal am Vortag weniger saufen)

Ich weiß allerdings nicht, ob das TestFileCreate auch bei der Ordnerauswahl gemacht wird.
Müsste man mal nachsehn, ob und mit welchem Dateinamen. (beim Speicherndialog ist es der Name der eingegebenen Datei)

Zugriffsrechte selbst werden vom Dialog nicht geprüft. Allerdings besteht die Möglichkeit über Events auf die Dateiauswahl/-eingabe zu reagieren und vor dem OK zu prüfen.
Wobei ich es inzwischen aufgegeben hab Rechte detailiert zu prüfen, da ich dabei garantiert irgendwas vergesse und die Prüfung falsche Ergebnisse liefert ... hier einfach die Datei öffnen/speichern und wenn es knallt, dann die passende Fehlermeldung.
Die Leseberechtigung der übergeordneten Verzeichnisse werden indirekt geprüft, da sich die Verzeichnisse dann nicht öffnen und somit untergeordnete Dateien/Verzeichnisse nicht auswählen lassen. (Eingeben kann man aber alles, inkl. Pfad unten im Edit ... darum hab ich auch immer das ofPathMustExist aktiv)
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 2. Jan 2020 um 02:04 Uhr)
  Mit Zitat antworten Zitat
Guido Eisenbeis

Registriert seit: 9. Apr 2006
389 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Verständnisfrage zu fdoForceFileSystem

  Alt 2. Jan 2020, 02:14
Hatte es anfangs auch andersrum geschrieben und dacht mir dann, andersrum klingt es richtiger.
Falls du damit ofNoTestFileCreate meinst, hast du das richtigrum geschrieben. (Kannst also weiters...) Das Durchgestrichene war nur zur Verdeutlichung meines Wunsches, es möge ein Flag geben, mit dem man Schreibrechte bei der Ordnerwahl prüfen kann.

In der Beschreibung zu ofNoTestFileCreate steht:

Disables checking for network file protection and inaccessibility of disk drives. Applies only when the user tries to save a file in a create-no-modify shared network directory.

Funktioniert also nicht bei Ordnerauswahl-Dialog!

Macht nichts, werde ich das so machen, wie von dir beschrieben:
... einfach die Datei öffnen/speichern und wenn es knallt, dann die passende Fehlermeldung.
Vielen Dank für deine Mühe!
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

AW: Verständnisfrage zu fdoForceFileSystem

  Alt 2. Jan 2020, 23:27
Vielleicht hilft das noch: What is the difference between a directory and a folder?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Guido Eisenbeis

Registriert seit: 9. Apr 2006
389 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: Verständnisfrage zu fdoForceFileSystem

  Alt 2. Jan 2020, 23:47
Das hilft in der Tat! Interessant finde ich vor allem, dass ich tatsächlich dachte, Ordner und Verzeichnisse seien das Gleiche! Und jetzt ohne Unsinn: Das kleine, unscheinbare Euler Diagramm hat ebenfalls geholfen!

Ich habe mir eine Eselsbrücke gemacht: Das Kleinere (= Ordner) enthält das Größere (= Verzeichnis)! Ich wünschte, ich würde das auch tatsächlich im Gedächtnis behalten.
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 01:44 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