Jump to content

OpenFileDialog mit Root-Folder (C#)

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

Diesen Beitrag teilen


Link zum Beitrag
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

Diesen Beitrag teilen


Link zum Beitrag
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.

Diesen Beitrag teilen


Link zum Beitrag
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.

Diesen Beitrag teilen


Link zum Beitrag
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.

Diesen Beitrag teilen


Link zum Beitrag
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

Diesen Beitrag teilen


Link zum Beitrag
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 :)

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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.

Diesen Beitrag teilen


Link zum Beitrag
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.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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?

Diesen Beitrag teilen


Link zum Beitrag
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

Diesen Beitrag teilen


Link zum Beitrag
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".

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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.

Diesen Beitrag teilen


Link zum Beitrag
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

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Nimm an der Diskussion teil

Du kannst jetzt hier posten und Dich später registrieren. Wenn Du bereits über eine Konto verfügst, melde Dich jetzt an, um mit Deinem Konto zu posten.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

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

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

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


Fachinformatiker.de, 2020 SE Internet Services

fidelogo_small.png

if_icon-6-mail-envelope-closed_314900.pnSchicken Sie uns eine Nachricht!

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

Fachinformatiker.de App


Get it on Google Play

Kontakt

Hier werben?
Oder senden Sie eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...

Wichtige Information

Fachinformatiker.de verwendet Cookies. Mehr dazu in unserer Datenschutzerklärung