Entwickler-Ecke
WinForms - Treeview - Dateien anzeigen
SSC streezer - Mo 09.06.08 13:22
Titel: Treeview - Dateien anzeigen
Hallo,
ich bins mal wieder mit meinem Treeview xD
gibt es eine Möglichkeit die einzelnen files anzuzeigen die sich in einem verzeichnis finden (mit datei endung) ?
danke für jeden kleinen tipp od. hinweis...
gruss aus der wiedermal sonnigen schweiz,
streezer
//edit hier noch der code den ich bis jetzt hab - der zeigt nur die verzeichnise an:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26:
| public void ErstelleDirTreeviewDir(string directoryValue, TreeNode parentNode) { string[] directoryArray = Directory.GetDirectories(directoryValue);
try { if (directoryArray.Length != 0) { foreach (string directory in directoryArray) { substringDirectory = directory.Substring( directory.LastIndexOf('\\') + 1, directory.Length - directory.LastIndexOf('\\') - 1);
TreeNode localNode = new TreeNode(substringDirectory);
parentNode.Nodes.Add(localNode);
ErstelleDirTreeviewDir(directory, localNode); } } } catch (UnauthorizedAccessException) { parentNode.Nodes.Add("Zugriff verweigert"); } |
Moderiert von
Christian S.: Code- durch C#-Tags ersetzt
SSC streezer - Mo 09.06.08 15:40
boah - ist das so schwirig zu implementieren dass sich niemand meldet? hab mich inzwischen n bisschen schlau gemacht - jedenfalls versucht...
bakachan - Mo 09.06.08 15:49
Wenn du damit meinst das dein problem darin liegt das du nicht weisst welche Dateien in den Verzeichnissen liegen, shilft dir :
C#-Quelltext
1:
| System.IO.Directory.GetFiles(stringPath); |
Rückgabewert müsste ein string-array mit den Dateinamen sein.
Und das hinzufügen von Subnodes müsstest du ja mittlerweile beherrschen.
SSC streezer - Mo 09.06.08 16:18
hab System.IO; eingebunden - was es allerdings nicht gibt bei mir ist System.IO.Directory....
? komisch...
bakachan - Mo 09.06.08 16:20
Dann halt System.IO.DirectoryInfo
oder sowas in der Art, schau dich einfach ein bischen in den IO-Klassen um da wirst du was passendes finden.
SSC streezer - Di 10.06.08 09:21
hab das jetzt so gelöst:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39:
| try { if (directoryArray.Length != 0) { foreach (string directory in directoryArray) { substringDirectory = directory.Substring( directory.LastIndexOf('\\') + 1, directory.Length - directory.LastIndexOf('\\') - 1);
TreeNode localNode = new TreeNode(substringDirectory);
parentNode.Nodes.Add(localNode);
ErstelleDirTreeviewDir(directory, localNode);
string[] fileArray = Directory.GetFiles(directory);
foreach (string file in fileArray) { substringFile = directory.Substring( directory.LastIndexOf('\\') + 1, directory.Length - directory.LastIndexOf('\\') - 1);
TreeNode fileNode = new TreeNode(file);
parentNode.Nodes.Add(fileNode);
ErstelleDirTreeviewDir(directory, fileNode); } } } } catch (UnauthorizedAccessException) { parentNode.Nodes.Add("Zugriff verweigert"); } |
hab einfach eine neue foreach schleife hinzugefügt die die directory nach files untersucht. aber was mir noch nicht ganz gefällt ist dass folgendes ausgegeben wird für die files: c:\dokumente Einstellungen\user\eigene Dateien\bild.jpg
kann mir jemand sagen wie ich den code ändern kann damit nur bild.jpg angezeigt wird?
gruss,
mike
Moderiert von
Christian S.: Code- durch C#-Tags ersetzt
bakachan - Di 10.06.08 09:31
Entweder du benutzt substrings an der stelle des letzten \
oder
Du benutzt anstelle von Directory.GetFiles lieber DirectoryInfo.GetFiles da dies ein Array von FileInfos zurückgibt und du bei jeder FileInfo Daten der File abrufen kannst (FullName / Name usw.)
Th69 - Di 10.06.08 09:50
Besser ist die "Path.GetFileName"-Methode.
SSC streezer - Di 10.06.08 09:50
DirectoryInfo gibt es, aber ich kriege nur 2 Methoden (Equals Reference equals)
eingebunden hab ichs... :s
bakachan - Di 10.06.08 09:54
SSC streezer hat folgendes geschrieben: |
| DirectoryInfo gibt es, aber ich kriege nur 2 Methoden (Equals Reference equals) |
Gestern meintest du auch es gäbe bei dir keine Directory-Klasse und trotzdem kannst du sie mittlerweile verwenden.
SSC streezer - Di 10.06.08 10:13
bakachan hat folgendes geschrieben: |
SSC streezer hat folgendes geschrieben: | | DirectoryInfo gibt es, aber ich kriege nur 2 Methoden (Equals Reference equals) |
Gestern meintest du auch es gäbe bei dir keine Directory-Klasse und trotzdem kannst du sie mittlerweile verwenden. |
directory klasse gibt es schon - directory info auch - aber methoden hab ich keine ausser die oben genannten....
bakachan - Di 10.06.08 10:29
C#-Quelltext
1: 2:
| DirectoryInfo dInfo = new DirectoryInfo(path); FileInfo[] fileInfos = dInfo.GetFiles(); |
Darauf hätte man mit ein bischen lesen udn rumprobieren aber auch locker selbst kommen können.
SSC streezer - Di 10.06.08 11:13
bakachan hat folgendes geschrieben: |
C#-Quelltext 1: 2:
| DirectoryInfo dInfo = new DirectoryInfo(path); FileInfo[] fileInfos = dInfo.GetFiles(); |
Darauf hätte man mit ein bischen lesen udn rumprobieren aber auch locker selbst kommen können. |
hm - ok - ich habs in der zwischen zeit mit lesen und rumprobieren locker selber geschafft ;)
hier die ganze methode
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55:
| public void ErstelleDirTreeviewDir(string directoryValue, TreeNode parentNode) { string[] directoryArray = Directory.GetDirectories(directoryValue);
try { string[] firstFileArray = Directory.GetFiles(directoryValue);
foreach (string file in firstFileArray) { substringFile = file.Substring( file.LastIndexOf('\\') + 1, file.Length - file.LastIndexOf('\\') - 1);
TreeNode fileNode = new TreeNode(substringFile);
parentNode.Nodes.Add(fileNode); }
if (directoryArray.Length != 0) { foreach (string directory in directoryArray) { substringDirectory = directory.Substring( directory.LastIndexOf('\\') + 1, directory.Length - directory.LastIndexOf('\\') - 1);
TreeNode localNode = new TreeNode(substringDirectory);
parentNode.Nodes.Add(localNode);
ErstelleDirTreeviewDir(directory, localNode); } } else { string[] fileArray = Directory.GetFiles(directoryValue);
foreach (string file in fileArray) { substringFile = file.Substring( file.LastIndexOf('\\') + 1, file.Length - file.LastIndexOf('\\') - 1);
TreeNode fileNode = new TreeNode(substringFile);
parentNode.Nodes.Add(fileNode); } } } catch (UnauthorizedAccessException) { parentNode.Nodes.Add("Zugriff verweigert"); } } |
Moderiert von
Christian S.: Code- durch C#-Tags ersetzt
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!