Autor Beitrag
Crynon
Hält's aus hier
Beiträge: 6

WIN 7
C#(VS 2008)
BeitragVerfasst: Do 03.12.09 11:24 
Hallo Community,

ich habe folgendes Problem.

Ich kriege das einfach nicht mit Path.GetDirectoryName hin das er mir nur den Ordnername in die TreeView packt =( ....

Ich hoffe ihr wisst eine Lösung

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:
private void Form1_Load(object sender, EventArgs e)
        {
            // aktuelles Verzeichnis auslesen und deklarieren
            string basePath = Directory.GetCurrentDirectory();

            //Methode zum TreeView füllen aufrufen
             allDirectorys(null, basePath);
        }

        private void allDirectorys(TreeNode fromNode, string basePath)
        {
            
            TreeNode newDirectory = new TreeNode();
            TreeNode newFile = new TreeNode();
            string  justTheSubDirectory;    
            string Filename;

            foreach (string oneDirectory in Directory.GetDirectories(basePath))
            {
                //Ordnernamen auslesen
                justTheSubDirectory = oneDirectory ;

                //Überprüfen ob der Ordnername ein $-Zeichen enthält
                if (!justTheSubDirectory.Contains("$"))
                {
                    if (fromNode == null)
                    {
                        newDirectory = treeProject.Nodes.Add(justTheSubDirectory);
                        foreach (string oneFile in Directory.GetFiles(justTheSubDirectory))
                        {
                            Filename = Path.GetFileName(oneFile);

                            if (!Filename.Contains("$"))
                            {
                                newFile = newDirectory.Nodes.Add(Filename, Filename);
                            }
                        }
                    }

                    else
                    {
                        newDirectory = fromNode.Nodes.Add(justTheSubDirectory);
                        foreach (string oneFile in Directory.GetFiles(oneDirectory))
                        {
                            Filename = Path.GetFileName(oneFile);
                            newFile = newDirectory.Nodes.Add(Filename, Filename);
                        }
                    }
                    allDirectorys(newDirectory, justTheSubDirectory);
                }
               
                
                
            }


Moderiert von user profile iconKha: 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: Do 03.12.09 11:35 
Um nur den Namen zu kriegen gibt es doch viele Möglichkeiten, hier mal 2 Beispiele:
ausblenden C#-Quelltext
1:
path.Substring(path.LastIndexOf('\\'))					

ausblenden C#-Quelltext
1:
new System.IO.DirectoryInfo(path).Name					
Crynon Threadstarter
Hält's aus hier
Beiträge: 6

WIN 7
C#(VS 2008)
BeitragVerfasst: Do 03.12.09 11:45 
Vielen dank,

das mit
ausblenden C#-Quelltext
1:
path.Substring(path.LastIndexOf('\\'))					

hat fast geklappt aber jetzt macht er mir immer noch ein \ davor ?!?

Habe gerade erst mit C# angefangen =(
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: Do 03.12.09 11:59 
ausblenden C#-Quelltext
1:
string.Substring(startIndex)					

also wenn er noch ein zeichen zu früh anfängt machst du halt noch ein +1 dazu
Crynon Threadstarter
Hält's aus hier
Beiträge: 6

WIN 7
C#(VS 2008)
BeitragVerfasst: Do 03.12.09 12:08 
Okay, danke nur ich muss das ganze bei der Namensvergebung des Tree-Namens machen, weil ich ansonsten kein Fullpath mehr habe um hinterher,wenn es eine Datei ist das dazu gehörige Programm zu starten ...

War ja voll easy >.<

THEMA ERLEDIGT

EDIT:

Hier noch der bearbeitete Code

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:
56:
57:
58:
59:
60:
 private void Form1_Load(object sender, EventArgs e)
        {
            // aktuelles Verzeichnis auslesen und deklarieren
            string basePath = Directory.GetCurrentDirectory();

            //Methode zum TreeView füllen aufrufen
             allDirectorys(null, basePath);
        }

        private void allDirectorys(TreeNode fromNode, string basePath)
        {
            
            TreeNode newDirectory = new TreeNode();
            TreeNode newFile = new TreeNode();
            string  justTheSubDirectory;    
            string Filename;

            foreach (string oneDirectory in Directory.GetDirectories(basePath))
            {
                //Ordnernamen auslesen
                justTheSubDirectory = oneDirectory ;

                //Überprüfen ob der Ordnername ein $-Zeichen enthält
                if (!justTheSubDirectory.Contains("$"))
                {
                    if (fromNode == null)
                    {

                        newDirectory = treeProject.Nodes.Add(justTheSubDirectory, justTheSubDirectory.Substring(justTheSubDirectory.LastIndexOf('\\') + 1));
                        foreach (string oneFile in Directory.GetFiles(justTheSubDirectory))
                        {
                            Filename = Path.GetFileName(oneFile);

                            if (!Filename.Contains("$"))
                            {
                                newFile = newDirectory.Nodes.Add(Filename, Filename);
                            }
                        }
                    }

                    else
                    {


                        newDirectory = fromNode.Nodes.Add(justTheSubDirectory, justTheSubDirectory.Substring(justTheSubDirectory.LastIndexOf('\\') + 1));
                        foreach (string oneFile in Directory.GetFiles(oneDirectory))
                        {
                            Filename = Path.GetFileName(oneFile);
                            newFile = newDirectory.Nodes.Add(Filename, Filename);
                        }
                    }
                    allDirectorys(newDirectory, justTheSubDirectory);
                }
               
                
                
            }
            
            
        }