Autor Beitrag
SSC streezer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 110

WinXP, Vista Ultimate
C# (VS 05 n' 08), PHP
BeitragVerfasst: Mo 09.06.08 13:22 
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:
ausblenden 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 user profile iconChristian S.: Code- durch C#-Tags ersetzt


Zuletzt bearbeitet von SSC streezer am Di 10.06.08 11:49, insgesamt 2-mal bearbeitet
SSC streezer Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 110

WinXP, Vista Ultimate
C# (VS 05 n' 08), PHP
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 503
Erhaltene Danke: 34

W7 (x64) Ultimate
C# / VB.NET (VS2010 Ultimate)
BeitragVerfasst: 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 :
ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 110

WinXP, Vista Ultimate
C# (VS 05 n' 08), PHP
BeitragVerfasst: Mo 09.06.08 16:18 
hab System.IO; eingebunden - was es allerdings nicht gibt bei mir ist System.IO.Directory....

? komisch...
bakachan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 503
Erhaltene Danke: 34

W7 (x64) Ultimate
C# / VB.NET (VS2010 Ultimate)
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 110

WinXP, Vista Ultimate
C# (VS 05 n' 08), PHP
BeitragVerfasst: Di 10.06.08 09:21 
hab das jetzt so gelöst:

ausblenden volle Höhe 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 user profile iconChristian S.: Code- durch C#-Tags ersetzt
bakachan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 503
Erhaltene Danke: 34

W7 (x64) Ultimate
C# / VB.NET (VS2010 Ultimate)
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4805
Erhaltene Danke: 1061

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Di 10.06.08 09:50 
Besser ist die "Path.GetFileName"-Methode.
SSC streezer Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 110

WinXP, Vista Ultimate
C# (VS 05 n' 08), PHP
BeitragVerfasst: Di 10.06.08 09:50 
DirectoryInfo gibt es, aber ich kriege nur 2 Methoden (Equals Reference equals)

eingebunden hab ichs... :s
bakachan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 503
Erhaltene Danke: 34

W7 (x64) Ultimate
C# / VB.NET (VS2010 Ultimate)
BeitragVerfasst: Di 10.06.08 09:54 
user profile iconSSC 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 110

WinXP, Vista Ultimate
C# (VS 05 n' 08), PHP
BeitragVerfasst: Di 10.06.08 10:13 
user profile iconbakachan hat folgendes geschrieben:
user profile iconSSC 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 503
Erhaltene Danke: 34

W7 (x64) Ultimate
C# / VB.NET (VS2010 Ultimate)
BeitragVerfasst: Di 10.06.08 10:29 
ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 110

WinXP, Vista Ultimate
C# (VS 05 n' 08), PHP
BeitragVerfasst: Di 10.06.08 11:13 
user profile iconbakachan hat folgendes geschrieben:
ausblenden 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

ausblenden volle Höhe 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 user profile iconChristian S.: Code- durch C#-Tags ersetzt