【问题标题】:DirectoryInfo for Network PC throws ArgumentException网络 PC 的 DirectoryInfo 引发 ArgumentException
【发布时间】:2012-06-24 04:40:34
【问题描述】:

我正在尝试将TreeView 控件绑定到我 LAN 上的计算机 ASUS-PC 的公用文件夹。

但是,我无法弄清楚如何解析“ASUS-PC”目录,因为我无法从路径 "\\\\ASUS-PC" 创建 DirectoryInfo 对象。

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();
    }
  }
}

我知道这是可以做到的。那么,我需要做什么?

【问题讨论】:

    标签: c# directory smb


    【解决方案1】:

    \\ASUS-PC 不是目录,这就是DirectoryInfo 抱怨的原因。你应该找到一种枚举共享的方法

    【讨论】:

      【解决方案2】:

      您正在寻找的是a way to enumerate network shares on a given host。 DirectoryInfo 无法做到这一点。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-04-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-13
        相关资源
        最近更新 更多