2012-06-23 2 views
2

Я пытаюсь связать элемент управления TreeView с общими папками машины ASUS-ПК на моей локальной сети.DirectoryInfo for Network PC throws ArgumentException

ASUS-PC Form Picture

Однако, я не могу понять, как разобрать «ASUS-PC» каталог, потому что я не могу создать DirectoryInfo объект с пути "\\\\ASUS-PC".

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

Линия выше бросает ArgumentException с сообщением The UNC path should be of the form \\server\share.

ниже код создает только немой узел корня, поэтому я не могу отобразить все общие папки на этом компьютере.

Как я могу извлечь список каталогов для пути "\\ 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(); 
    } 
    } 
} 

Я знаю, что это можно сделать. Итак, что мне нужно сделать?

Windows Does it

ответ

5

\\ASUS-PC не является каталогом, поэтому DirectoryInfo жалуется. Вы должны найти способ для перечисления акций