TreeViewコントロールをLAN上のASUS-PCマシンのパブリックフォルダーにバインドしようとしています。
ただし、パスからDirectoryInfoオブジェクトを作成できないため、「ASUS-PC」ディレクトリを解析する方法がわかりません"\\\\ASUS-PC"
。
DirectoryInfo dir = new DirectoryInfo("\\\\ASUS-PC");
上記の行は、メッセージとともにArgumentExceptionをスローしますThe UNC path should be of the form \\server\share.
以下のコードはルートのダムノードを作成するだけなので、そのPCのすべてのパブリックフォルダーを表示することはできません。
パス「\\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();
}
}
}
私はこれができることを知っています。だから、私はこれを行うために何が必要ですか?