private string GetPath(ref TreeNode treenode) { TreeNode nextnode = treenode; //Node wird in nextnode geschrieben string text = ""; //Falls es ein Drive ist if (nextnode.Level == 1) //0 darf nicht gehen { text = @"\\" + treenode.Text; return(text); } else { text = treenode.Text + @"\"; } while (nextnode.Level >= 1) { nextnode = nextnode.Parent; if (nextnode.Level == 1) { text = @"\\" + LocalNetworkFunctions.GetIPAdressFromMachineName(nextnode.Text) + @"\" + text; break; } else { text = nextnode.Text + @"\" + text; } } return(text); }
private void ShowSharedFolders() { for (int i = 0; i < tvnfs.Nodes[0].Nodes.Count; i++) { List <string> networkfolders = LocalNetworkFunctions.GetListOfSharedFolders(LocalNetworkFunctions.GetIPAdressFromMachineName(tvnfs.Nodes[0].Nodes[i].Text)); foreach (string entry in networkfolders) { if (entry.Contains("ERROR") == false) { try { TreeNode n = new TreeNode(entry); n.ImageIndex = 2; n.SelectedImageIndex = 2; tvnfs.Nodes[0].Nodes[i].Nodes.Add(n); } catch { } } else { System.Diagnostics.Debug.Print("Fehler beim Zugriff auf Netzwerk-Ordner"); System.Diagnostics.Debug.Print("IP: " + LocalNetworkFunctions.GetIPAdressFromMachineName(tvnfs.Nodes[0].Nodes[i].Text)); System.Diagnostics.Debug.Print("PC-Name: " + tvnfs.Nodes[0].Nodes[i].Text); System.Diagnostics.Debug.Print("Error-Code: " + entry.Substring(entry.IndexOf("=") + 1)); //Anhand der Message den Fehler anzeigen if (entry.Substring(entry.IndexOf("=") + 1) == "5") { System.Diagnostics.Debug.Print("Fehler: Access Denied"); } else if (entry.Substring(entry.IndexOf("=") + 1) == "53") { System.Diagnostics.Debug.Print("Fehler: Bad Network Path"); } } } //Der nächste Schritt ist zu scannen, welche Freigaben noch Unterordner hat, auf die zugegriffen werden kann. //wenn dies der Fall ist, soll ein Temp-Node angelegt werden if (tvnfs.Nodes[0].Nodes[i].Nodes.Count > 0) { for (int j = 0; j < tvnfs.Nodes[0].Nodes[i].Nodes.Count; j++) { //Der Netzwerkpfad string p = @"\\" + LocalNetworkFunctions.GetIPAdressFromMachineName(tvnfs.Nodes[0].Nodes[i].Text) + @"\" + tvnfs.Nodes[0].Nodes[i].Nodes[j].Text; if (DirectoryFunctions.HasSubDirectories(p)) { tvnfs.Nodes[0].Nodes[i].Nodes[j].Nodes.Add(TREENODE_DIRSUB); } } } } }
private void Pingcl_PingListCompleted(List <string> iplist) { System.Diagnostics.Debug.Print("IP-Liste erhalten"); pclist = iplist; //Für die Shared Folders vom Vorteil foreach (string ip in iplist) { try { TreeNode n = new TreeNode(LocalNetworkFunctions.GetHostName(ip).ToUpper()); n.ImageIndex = 1; n.SelectedImageIndex = 1; tvnfs.Invoke(new NetworkTreeViewAddElement(TreeViewAddPCElement), n); } catch { } } tvnfs.Invoke(new NetworkTreeViewClear(TreeViewClear)); //Im Anschluss soll gleich die nächste Methode aufgerufen //werden. Diese soll die Netzwerkordner angeben für //jede einzelnen PC Invoke(new NetworkTreeViewClear(ShowSharedFolders)); //Invoken, damit es im Main-Thread läuft }