2012-07-24 5 views
11

Ich habe gepostet - How to use OpenFileDialog to select a folder?, ich konnte die richtige Antwort nicht finden. Also, ich habe meine Frage geändert.C# - Wie kann OpenFileDialog angepasst werden, um mehrere Ordner und Dateien auszuwählen?

Ich möchte OpenFileDialog anpassen, um mehrere Ordner und Dateien auszuwählen. Ich habe versucht, eine Lösung zu finden und könnte einige Beiträge darüber sehen.

Aus dem Internet habe ich folgendes Projekt gefunden - https://github.com/scottwis/OpenFileOrFolderDialog.

Aber während ich dies nutzte, sah ich mich einem Problem gegenüber. Es verwendet die GetOpenFileName Funktion und OPENFILENAME Struktur von MFC. Und OPENFILENAME hat das Mitglied namens "templateID". Es ist die Kennung für die Dialogvorlage. Und das Beispielprojekt hat die Datei "res1.rc" und auch den Vorlagen-Dialog darin.

Aber ich weiß nicht Wie kann ich diese Datei an mein C# -Projekt anhängen?

Oder gibt es eine andere perfekte Lösung - „Wie Openfiledialog anpassen mehrere Ordner und Dateien auswählen?“?

Antwort

11

Wenn Sie die FileNames-Eigenschaft anstelle der FileName-Eigenschaft verwenden, erhalten Sie ein Zeichenfolgenarray für jede ausgewählte Datei, Sie wählen mehrere Dateien mit der Umschalttaste aus. Wie so:

private void button1_Click(object sender, EventArgs e) 
{ 
    OpenFileDialog x = new OpenFileDialog(); 
    x.Multiselect = true; 
    x.ShowDialog(); 
    string[] result = x.FileNames; 

    foreach (string y in result) 
     MessageBox.Show(y, "Selected Item", MessageBoxButtons.OK, MessageBoxIcon.Information); 
} 

Für Dateien und Ordner, die Sie die CommonOpenFileDialog mit dem WinAPI enthalten verwenden müssen, ist die besondere Klasse here.

+1

Sie müssen die 'Multiselect' Eigenschaft des' OpenFileDialog' auf 'true' setzen, damit das funktioniert :) –

+2

Haben Sie" mehrere ** Ordner ** und Dateien "vergessen? Ich möchte auch die Ordner auswählen. – Yun

+0

Ich denke, Sie müssen stattdessen den CommonOpenFileDialog verwenden, aber es sollte auf die gleiche Weise funktionieren, ich werde meine Antwort in Kürze aktualisieren – JMK

2

Versuchen Sie folgendes:

openFileDialog.Multiselect = true; 
+0

Hast du "mehrere ** Ordner ** und Dateien" vergessen? Ich möchte auch die Ordner auswählen. – Yun

+0

Sollte für Ordner und Datei funktionieren. –

1

Sie werden vielleicht nicht ein in Net-Steuerung so gebaut werden. Definitiv kann der OpenFileDialog nicht sowohl als Datei- als auch als Ordner-Browser funktionieren. Sie haben zwei Möglichkeiten für ein Drittanbieter-Tool wie das, das Sie gefunden haben, machen Sie Ihre eigene Kontrolle. Überraschenderweise finden Sie es nicht sehr schwierig, eine sehr einfache Version Ihrer eigenen Steuerung zu erstellen.

+0

Danke. Haben Sie ein vorgeschlagenes Drittanbieter-Tool? – Yun

+0

Ich habe noch nie einen verwendet ... nie benötigt ... aber sieh dir diese Links an .. http://www.ssware.com/fldrview.htm und http: //www.codeproject.com/Artikel/44914/Wählen Sie-Datei-oder-Ordner-aus-der-gleichen-Dialog –

Verwandte Themen