[C#] Ordnernamen wie im Windows-Explorer anzeigen

Drucken
( 0 Votes ) 
Hauptkategorie: Programmieren Kategorie: C#
Erstellt am 26.07.2012 Zuletzt aktualisiert am 26.07.2012 Geschrieben von Jonny132
Geht man Beispielsweise im Windows-Explorer in den Benutzerordner, gibt es dort Ordner wie 'Eigene Bilder', 'Eigene Dokumente', 'Eigene Musik', usw... Diese Bezeichnungen werden jedoch von Ländereinstellungen 'generiert', denn Systemintern werden die Bezeichnungen 'Pictures', 'Documents', 'Music',... verwendet.

Da die DirectoryInfo diese Systeminternen Bezeichner verwendet und nicht welche die der Benutzer wirklich kennt (also die Länderspezifischen Bezeichnungen), muss man einen anderen Weg gehen, um dem Benutzer seine 'gewohnten' Bezeichnungen zu liefern.

Und zwar muss dazu die COM-DLL Shell32 (Microsoft Shell Controls and Automation) referenziert werden.

Verwendung der Shell32 - DLL:
            Shell32.Shell shell = new Shell32.Shell();
            Shell32.Folder folder = shell.NameSpace(@"C:\Users\username");

            foreach (Shell32.ShellFolderItem item in folder.Items())
            {
                if(item.IsFolder)
                  listBox1.Items.Add(item.Name);
            }

            listBox2.DataSource = new DirectoryInfo(@"C:\Users\username").GetDirectories();
Für einen direkten Vergleich, fügen wir die Ordnerbezeichnungen eines Ordners in 2 verschiedene ListBoxen ein.
Vergleich zwischen Systembezeichnung und im Explorer angezeigter Name


    Veröffentlichen Sie ihre Kommentare ...