DirectoryInfo voor netwerk-pc genereert ArgumentException

Ik probeer een TreeView te binden controle op de openbare mappen van het apparaat ASUS-PC op mijn LAN.

ASUS-PC Form Picture

Ik kan echter niet achterhalen hoe de "ASUS-PC" -directory kan worden ontleed, omdat ik geen DirectoryInfo -object van het pad " \\\\ ASUS-PC ".

DirectoryInfo dir = new DirectoryInfo("\\\\ASUS-PC");

The line above throws an ArgumentException with the message The UNC path should be of the form \\server\share.

De onderstaande code maakt alleen een dom knooppunt voor de root, dus ik kan niet alle openbare mappen op die pc weergeven.

Hoe trek ik de directoryvermelding voor het pad "\\ ASUS-PC"?

public void BindDirectoryToTreeView(string directoryPathToBind) {
  if (!String.IsNullOrEmpty(directoryPathToBind) && Directory.Exists(directoryPathToBind)) {
    treeView1.Nodes.Clear();
    TreeNode rootNode = null;
    char[] ps = treeView1.PathSeparator.ToCharArray();
    string[] split = directoryPathToBind.Split(ps);
    var folders = split.Where(str => !String.IsNullOrEmpty(str));
    for (int i = 0; i < folders.Count(); i++) {
      var folder = folders.ElementAt(i);
      int index = directoryPathToBind.IndexOf(folder);
      int length = index + folder.Length;
      string path = directoryPathToBind.Substring(0, length);
      if (rootNode != null) {
        DirectoryInfo dir = new DirectoryInfo(path);
        TreeNode node = new TreeNode(dir.Name, 0, 0);
        RecurseFolders(dir, node);
      } else {
        //DirectoryInfo dir = new DirectoryInfo(path); <= Throws the Error
        rootNode = new TreeNode(folder, 0, 0);
        //RecurseFolders(dir, rootNode);
      }
    }
    treeView1.Nodes.Add(rootNode);
    if (0 < rootNode.Nodes.Count) {
      rootNode.Expand();
    }
  }
}

Ik weet dat dit kan worden gedaan. Wat heb ik nodig om dit te doen?

Windows Does it

2

2 antwoord

\\ASUS-PC is not a directory, that's why DirectoryInfo is complaining. You should find a method for enumerating shares

5
toegevoegd

Wat u zoekt, is een manier om netwerkshares op te sommen op een bepaalde host . Het is niet mogelijk om dit te doen met DirectoryInfo.

4
toegevoegd