Veröffentlicht 5. April 201114 j 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
6. April 201114 j 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 6. April 201114 j von mharms
6. April 201114 j 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
6. April 201114 j 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.
6. April 201114 j 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.
6. April 201114 j ??? 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.
6. April 201114 j 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
6. April 201114 j 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
6. April 201114 j 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.
6. April 201114 j 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.
6. April 201114 j 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?
6. April 201114 j Wie gesagt: wer seinen User so bevormundet, sollte überlegen, ob es überhaupt eines "Dialoges" bedarf, oder ob man nicht gleich selbst dafür Sorge trägt, das richtige zu laden.
6. April 201114 j 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?
8. April 201114 j 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
8. April 201114 j 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".
11. April 201114 j 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
11. April 201114 j 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.
11. April 201114 j 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
12. April 201114 j 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 :]
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.