Zum Inhalt springen

OpenFileDialog mit Root-Folder (C#)


Empfohlene Beiträge

Geschrieben

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

Geschrieben (bearbeitet)

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
Geschrieben

Danke für die Antwort. Habe gestern bereits mit genau diesen beiden Ansätzen begonnen. Macht immer wieder Spaß das Rad neu zu erfinden nur weil an wirklich nützliche Sachen nicht gedacht wird.......................

Lg,

Sebastian

Geschrieben

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.

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

Geschrieben

???

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.

Geschrieben

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

Geschrieben
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 :)

Geschrieben

Den Sinn und Zweck verstehe ich jetzt auf anhieb nicht - warum dann überhaupt einen Dialog?

Die andere Alternative, die in meinen Augen weniger Arbeit bereitet wäre die, einfach den Pfad validieren zu lassen.

Wenn der User Files aus anderen Pfaden nimmt, mäkelt einfach das Programm.

Geschrieben

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.

Geschrieben

Und was stört jetzt daran wenn Du das InitialDirectory des Dialogs festlegst? Die ausgewählte Datei musst Du so oder so validieren. Warum sollte ein User sich die Finger wund klicken wenn er beim Öffnen des Dialogs bereits im richtigen Verzeichnis ist?

Geschrieben

Und die entsprechenden Dateien aus dem Verzeichnis auslesen und in nem GridView oder so anzeigen geht nicht? Dann müsste der User nur noch auf die Datei seiner Wahl doppelklicken. Oder hab ich das jetzt falsch verstanden?

Geschrieben

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

Geschrieben

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

Geschrieben

Hallo

Ich will niemanden zu nah treten aber ich frage mich gerade, warum ein Treeview notwendig ist, wenn der User doch das "angegebene" Verzeichnis nicht verlassen können soll !? Somit geht m.E. ein DataGridView schon umd die Dateien anzeigen zu lassen.

Gruß Hans-Jörg

Geschrieben

Prinzipiell gebe ich Dir recht. Aber ein Treeview wäre wegen der Semantik nett. Der Benutzer bemerkt, dass es irgendwie um Dateioperationen (wenn auch nur in einem Verzeichnis) geht. Der Funktionalität halber reicht auch ein Grid, oder evtl. nur eine ComboBox.

Geschrieben

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

Geschrieben

Ja- ich dachte auch nur an einen sehr primitiven Baum, wo an der Spitze nur "Dateien" steht und darunter eben die einzelnen Dateien aufgelistet werden. So dass es quasi entfernt eben an einen Verzeichnisbaum erinnert :]

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