Zum Inhalt springen

OpenFileDialog mit Root-Folder (C#)


SebastianB

Empfohlene Beiträge

Hallo,

ich benötige einen OpenFileDialog, der nicht zulässt das der User den Root-Folder verlässt. Ich habe bereits die Suche genutzt und keine Ergebnisse erhalten. Nun wollte ich mich an die vielen Quellen hier wenden. Hat jemand bereits Erfahrung in dem Bereich und kann mir weiter helfen? Ich wollte eigentlich nicht den ganzen Dialog neuschreiben müssen. Ableiten vom regulären OpenFileDialog ist nicht möglich, da dieser nicht freigegeben ist.

Lg

Sebastian

Link zu diesem Kommentar
Auf anderen Seiten teilen

Moin,

du musst das wohl komplett neu schreiben. Stichwort Directory- und FileInfo Klassen.

Die GetOpenFileName der WinApi fällt auch flach, die hat keine Parameter, wie der Ordner-Dialog der WinApi.

Schade, dass ich dich enttäuschen muss.

Aus meiner Sicht gibt es da keine Alternative, aber vielleicht gibt es hier ja noch jemanden, der mehr weiß.

Bearbeitet von mharms
Link zu diesem Kommentar
Auf anderen Seiten teilen

Welchen Sinn soll das denn haben? Zugriffsberechtigungen auf das FileSystem sollten auch vom BS bzw. dem FileSystem selber verwaltet werden. Wenn der User nur in einem bestimmten Ordner suchen darf, kannst Du das auch per NTFS Berechtigungen einstellen.

Was haben solche Berechtigungen damit zu tun, wenn das Programm z.B. nicht auf das Netzwerk oder eine bestimmte Platte zugreifen soll, um z.B. Fehleingaben zu verhindern? Soll der Benutzer komplett eingeschränkt werden, weil dieses eine Programm das beinhalten soll?

Und nebenbei: warum verstehen es manche Leute nicht, dass das anzweifeln der Aufgabe des Thread-Erstellers keine Antwort auf die gestellte Frage ist und demnach einfach überflüssig ist und niemanden interessiert.

Link zu diesem Kommentar
Auf anderen Seiten teilen

???

Ich habe mich auf diese Aussage bezogen:

Macht immer wieder Spaß das Rad neu zu erfinden nur weil an wirklich nützliche Sachen nicht gedacht wird.......................

Für Zugriffsberechtigungen ist nunmal das BS (und FS) verantwortlich. Ich habe nicht die Aufgabe des Threaderstellers angezweifelt sondern den verwendeten Lösungsweg.

Dazu habe ich auch eine Anregung gegeben wie man die "Aufgabe" anders lösen könnte.

Was haben solche Berechtigungen damit zu tun, wenn das Programm z.B. nicht auf das Netzwerk oder eine bestimmte Platte zugreifen soll, um z.B. Fehleingaben zu verhindern?

Da hast Du Recht. Um Fehleingaben zu verhindern verwendet man Validierung der Eingabedaten. Sonst kopiert der User die "falschen" Dateien (die er selber wahrscheinlich für richtig hält) einfach in das angegebene Verzeichnis und Du hast das gleiche Problem.

Programmen Berechtigungen zu geben ist ziemlich sinnlos, es kommt immer auf den User an der das Programm ausführt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

vielleicht hab ich mein Problem nicht gut genug geschildert. Es geht darum das der User Datein in ein Programm einlesen muss. Hierbei soll er aber nicht Dateien von irgendwoher nehmen, sondern nur welche die sich in einem bestimmten Verzeichniss befinden. Und das ist weder die Aufgabe von Windows noch von einem Dateisystem! Es geht einfach darum den OpenFileDialog in seiner Freiheit so zu beschränken, das er nur in dem Installationsordner des aufrufenden Programmes genutzt werden kann, oder eher gesagt, nur Dateien in den dort angelegten Unterverzeichnissen öffnet.

Lg

Sebastian

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

vielleicht hab ich mein Problem nicht gut genug geschildert. Es geht darum das der User Datein in ein Programm einlesen muss. Hierbei soll er aber nicht Dateien von irgendwoher nehmen, sondern nur welche die sich in einem bestimmten Verzeichniss befinden. Und das ist weder die Aufgabe von Windows noch von einem Dateisystem! Es geht einfach darum den OpenFileDialog in seiner Freiheit so zu beschränken, das er nur in dem Installationsordner des aufrufenden Programmes genutzt werden kann, oder eher gesagt, nur Dateien in den dort angelegten Unterverzeichnissen öffnet.

Lg

Sebastian

Jopp so hab ich das auch verstanden :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

Also das kann ich dem Kunden ja schlecht antun... Er klickt sich erstmal den Finger wund um dann vom Programm gesagt zu bekommen: "Noe, also so nehm ich das nicht an". Der große Sinn und Zweck dieses Dialoges ist, das der User die Arbeit abgenommen bekommt. Ebenfalls ist es so einfach sicher, dass der User nicht einfach mal eine veraltete Datei, in diesem Fall Methode verwendet.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

@aline:

Ich bin ja bereits fertig mit der Komponente. Hier ist es jedoch besser ein TreeView oder ein ListView zur Visualisierung zu nehmen. Ein GridView ist nocht besonders gut geeignet um Dateien und Verzeichnisse anzuzeigen.

@lilith2k3

Du scheinst immer noch nicht verstanden zu haben worum es geht. Diese Komponente erleichtert dem User erstens das einlesen der Methodendateien, andererseits stellt es sicher das diese auch aktuell sind. Dein Vorschlag grenzt an Gedankenlesen, ich kann ja nicht wissen welche der über 100 Methodenfiles er laden will... Wie mharms schon sagte, stell doch bitte nicht bereits meine Frage in Frage.

Lg,

Sebastian

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich bilde mir schon ein, verstanden zu haben, was Du vorhast. Nur finde ich es geradezu paradox, dem Benutzer Deine Weltsicht aufdrängen zu wollen, und im gleichen Atemzug zu behaupten, das ganze erleichtere irgendwem irgendwas.

Und mit Deiner Treeview bist Du ja auf einem guten Weg - wie ich schon andeutete: es bedarf keines "Dialoges".

Link zu diesem Kommentar
Auf anderen Seiten teilen

Da hast auch wieder recht, wobei ich die Erfahrung gemacht habe, alles was der Endanwender nicht können muss braucht / soll er auch nicht sehen.

Oft ist es ja so, dass wenn z.B. die anderen Verzeichnisse angezeigt werden, der Endanwender aber trotzdem keinen "Nutzen" hat, es zu Begehrlichkeiten führt.

Kann aber auch am Kunden liegen ;-)

Gruß Hans-Jörg

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...