2010-05-12 7 views
5

Wie verwende ich die OpenFileDialog-Klasse (in C#, WPF usw.) so, dass sie standardmäßig im Netzwerkbereich geöffnet wird?Wie verwende ich die OpenFileDialog-Klasse so, dass sie standardmäßig im Netzwerkbereich geöffnet wird?

arbeiten Dies gilt nicht:

OpenFileDialog openFileDialog1 = new OpenFileDialog(); 
    openFileDialog1.InitialDirectory = "Network"; 

Ich habe auch versucht, „\“ als Initial hat und dass hat nicht funktioniert.

Ich habe auch versucht, "\\" als InitialDirectory und das hat auch nicht funktioniert.

Antwort

8

Ich habe nicht versucht, aber dies sollte funktionieren:

openFileDialog1.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.NetworkShortcuts); 

Environment.GetFolderPath gibt den Pfad als String in einen Environment.SpecialFolder Aufzählung Eintrag entspricht.

Environment.SpecialFolder.NetworkShortcuts ist definiert als

Ein Dateisystemverzeichnis, das die Verknüpfungsobjekte enthält, die in der Netzwerkumgebung virtuelle Ordner existieren.

1

Customize Your Open File Dialog aus dem Microsoft MSDN Magazine hat eine Los von Informationen über den Dialog. Ich habe nicht Gelegenheit hatte, alles zu lesen, aber das mir auffiel:

A Custom Places Bar
...

Sie werden, wenn der Name des einen REG_SZ-Eintrag benötigen Ordner ist ein absoluter oder relativer Pfad. Sie müssen die ordnerspezifische Nummer verwenden, wenn Sie einen speziellen Ordner als Ziel haben möchten (siehe Abbildung 6 für eine Liste). In diesem Fall wird ein REG_DWORD-Eintrag benötigt.

Ordner-IDs

ID Ordner
0 Desktop-
2 Ordner Programme auf Startmenü
3 Bedienfeld
4 Drucker
5 My Documents
6 Favoriten
7 Startordner im Startmenü
8 Neueste Dateien
9 Senden an
10 Papierkorb
12 Startmenü
17 Arbeitsplatz
18 Netzwerkumgebung
20 Fonts

ich eine ganze Menge Zeug verpasst haben (weil es ein sehr langer Artikel ist), aber es sieht so aus, als könnten Sie den ID-Wert auf 18 setzen, um Ihre Netzwerkorte zu erhalten. @Nelson weist jedoch darauf hin, dass dieser Teil möglicherweise aussieht, als ob er einen Eintrag zu der Leiste hinzufügt, also überprüfen Sie ihn vor der Verwendung. Wie ich bereits erwähnt habe, enthält der Post, den ich verlinkt habe, eine Los Information, also was Sie brauchen, kann gut irgendwo darin begraben werden.

Update:

Auf Windows 7-PC es funktioniert nicht.zB:

OpenDialogPlaces o = new OpenDialogPlaces(); 
//o.Places.Add(18); 
//o.Places.Add(5); 
//o.Places.Add(6); 
o.Init(); 
o.OpenDialog.ShowDialog(); 
o.Reset(); 

Noch zeigt alles in der linken:

enter image description here

Es funktionierte in früheren Versionen von Windows:

enter image description here

Eine andere Sache, es scheint Microsoft hat den Standort der ComDlg32 geändert, ich habe beide Plätze ausprobiert, aber kein Glück.

enter image description here

+0

Sounds wie das würde es in die Leiste (als Abkürzung) hinzufügen, aber nicht wirklich dort beginnen? –

+0

@Nelson - Wie ich schon sagte, hatte ich keine Chance, alles auf dieser Seite zu überprüfen, aber ich dachte, es wäre ein nützlicher Ausgangspunkt. Ich werde die Antwort aktualisieren, um Ihre Zweifel zu reflektieren. – ChrisF

Verwandte Themen