Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Verzeichnis-Auswahl-Dialog

12 views
Skip to first unread message

Martin Brodbeck

unread,
Sep 23, 2002, 7:02:16 AM9/23/02
to
Hallo,

Ausgehend von einem Verzeichnis möchte ich alle darunter liegenden Dateien
durchlaufen.

Um das Ausgangsverzeichnis auszuwählen, würde ich gerne so etwas wie einen
OpenFileDialog verwenden, nur dass man eben keine Datei auswählen kann,
sondern ein Verzeichnis.

Ich habe keine Möglichkeit gefunden, den OpenFileDialog über die
Eigenschaften so zu konfigurieren, dass man Verzeichnisse auswählen kann.
Geht das überhaupt?
Ansonsten würde mich interessieren, ob bereits jemand so einen
Verzeichnisauswahl-Dialog programmiert hat und mir ein paar Tipps geben
kann, wie man so etwas am besten macht.

Vielen Dank und Grüße,
Martin


Frank Eller

unread,
Sep 23, 2002, 9:37:07 AM9/23/02
to
Hallo Martin,


wird immer wieder mal gefragt ... hier ein Code, aber ohne Garantie. Kann
durchaus sein, dass er in der nächsten Version des .NET Frameworks nicht
mehr funktioniert ...

In C#:

using System;
using System.Windows.Forms;
using System.Windows.Forms.Design;

namespace FrankEller {


public class DirectorySelect : FolderNameEditor {
FolderBrowser fb = new FolderBrowser();

private string fDescription = "Verzeichnis wählen";
private string fReturnPath = String.Empty;

public string Description {
get { return fDescription; }
set { fDescription = value; }
}

public string ReturnPath {
get { return fReturnPath; }
}

public DirectorySelect() { }

private DialogResult RunDialog() {
fb.Description = this.Description;
fb.StartLocation = FolderBrowserFolder.MyComputer;
return fb.ShowDialog();
}

public DialogResult ShowDialog() {
DialogResult dRes = DialogResult.None;
dRes = RunDialog();
if (dRes == DialogResult.OK)
this.fReturnPath = fb.DirectoryPath;
else
this.fReturnPath = String.Empty;
return dRes;
}
}
}


in VB.NET:

Imports System
Imports System.Windows.Forms
Imports System.Windows.Forms.Design


Public Class DirectorySelect
Inherits FolderNameEditor

Dim fb As FolderBrowser = New FolderBrowser()

Dim fDescription As String = "Verzeichnis wählen"
Dim fReturnPath As String = String.Empty

Public Property Description() As String
Get
Return fDescription
End Get
Set(ByVal Value As String)
fDescription = Value
End Set
End Property

Public ReadOnly Property ReturnPath() As String
Get
Return fReturnPath
End Get
End Property

Function RunDialog() As DialogResult
Dim dres As DialogResult

fb.Description = Me.Description
fb.StartLocation = FolderBrowserFolder.MyComputer
dres = fb.ShowDialog()
Return dres
End Function

Public Function ShowDialog() As DialogResult
Dim dres As DialogResult
dres = RunDialog()
If dres = DialogResult.OK Then
Me.fReturnPath = fb.DirectoryPath
Else
Me.fReturnPath = String.Empty
End If
Return dres

End Function
End Class


Ich hoffe, das hilft dir weiter ...

Viele Grüße,

Frank Eller
www.frankeller.de

Martin Brodbeck

unread,
Sep 23, 2002, 8:56:30 AM9/23/02
to
Hallo Frank,

> wird immer wieder mal gefragt ... hier ein Code, aber ohne Garantie. Kann
> durchaus sein, dass er in der nächsten Version des .NET Frameworks nicht
> mehr funktioniert ...

Vielen Dank! Außerdem muss ich mich entschuldigen, weil ich nach dem Posting
erst einen entsprechenden Thread gefunden habe, in dem du den Code (in
VB.NET) bereits beschrieben hast.

Das Ganze funktioniert auch prima. Aber hast du eine Idee, warum Microsoft
so etwas nicht dokumentiert, bzw., warum sie das "verstecken"? Deutet das
darauf hin, das Microsoft ein derartiges Steuerelement für -- vielleicht --
die nächste Version plant, und schonmal vorgearbeitet hat?

Wie auch immer, ich finde es jedenfalls ziemlich nervig (und zeitraubend),
dass MS soche Steuerelemente noch nicht "offziell" im Framework integriert
hat...

Grüße,
Martin


Joachim Fuchs

unread,
Sep 23, 2002, 10:10:57 AM9/23/02
to
Hallo Martin,

> Das Ganze funktioniert auch prima. Aber hast du eine Idee, warum Microsoft
> so etwas nicht dokumentiert, bzw., warum sie das "verstecken"? Deutet das
> darauf hin, das Microsoft ein derartiges Steuerelement für --
vielleicht --
> die nächste Version plant, und schonmal vorgearbeitet hat?

in der Doku steht ausdrücklich, daß die Klasse nur für interne Zwecke
existiert, also Vorsicht.

Der richtige Weg wäre über die API-Funktion SHBrowseForFolder.

>
> Wie auch immer, ich finde es jedenfalls ziemlich nervig (und zeitraubend),
> dass MS soche Steuerelemente noch nicht "offziell" im Framework integriert
> hat...

da kann ich nur zustimmen.

Gruß
Joachim

NETMaster

unread,
Sep 23, 2002, 10:47:01 AM9/23/02
to
> Der richtige Weg wäre über die API-Funktion SHBrowseForFolder.
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q306285


--
NETMaster (Thomas Scheidegger)
http://www.cetus-links.org/oo_csharp.html


Joachim Fuchs

unread,
Sep 23, 2002, 11:35:15 AM9/23/02
to
Hallo Thomas,

sehr gut gefunden!

Ich wußte schon, warum ich das noch nicht selbst in Angriff genommen
hatte...

Gruß
Joachim


0 new messages