2012-10-02 1299 views
0

我构建了一个树状结构来显示本地机器上的远程机器的目录。 它适用于在本地机器上显示目录,但不适用于远程机器。在树状视图中构建远程机器(LAN)的目录结构

下面是代码,会很高兴,如果有人能告诉我如何使这项工作与远程机

Imports System.IO 
Imports System.Collections.Generic 
Imports System.ComponentModel 
Imports System.Windows.Forms 
Imports System.Linq 
Imports System.Drawing 
Imports System.Data 

Public Class GPSTestAuto 
Private mRootPath() As String = Directory.GetFileSystemEntries("\\192.168.0.35\Test Drive\ULTS\") 
    Property RootPath As String 
     Get 
      Return mRootPath(0) 
     End Get 
     Set(value As String) 
      mRootPath(0) = value 
     End Set 
    End Property 
    Private Sub GPSTestAuto_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load 

     Dim mRootNode As New TreeNode 
     mRootNode.Text = RootPath 
     mRootNode.Tag = RootPath 

     mRootNode.Nodes.Add("*DUMMY*") 
     TreeView1.Nodes.Add(mRootNode) 

    End Sub 
    Private Sub TreeView1_BeforeCollapse(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeViewCancelEventArgs) Handles TreeView1.BeforeCollapse 
     ' clear the node that is being collapsed 
     e.Node.Nodes.Clear() 
     ' add a dummy TreeNode to the node being collapsed so it is expandable 
     e.Node.Nodes.Add("*DUMMY*") 
    End Sub 

    Private Sub TreeView1_BeforeExpand(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeViewCancelEventArgs) Handles TreeView1.BeforeExpand 
     ' clear the expanding node so we can re-populate it, or else we end up with duplicate nodes 
     e.Node.Nodes.Clear() 
     ' get the directory representing this node 
     Dim mNodeDirectory As IO.DirectoryInfo 
     mNodeDirectory = New IO.DirectoryInfo(e.Node.Tag.ToString) 
     ' add each subdirectory from the file system to the expanding node as a child node 
     For Each mDirectory As IO.DirectoryInfo In mNodeDirectory.GetDirectories 
      ' declare a child TreeNode for the next subdirectory 
      Dim mDirectoryNode As New TreeNode 
      ' store the full path to this directory in the child TreeNode's Tag property 
      mDirectoryNode.Tag = mDirectory.FullName 
      ' set the child TreeNodes's display text 
      mDirectoryNode.Text = mDirectory.Name 
      ' add a dummy TreeNode to this child TreeNode to make it expandable 
      mDirectoryNode.Nodes.Add("*DUMMY*") 
      ' add this child TreeNode to the expanding TreeNode 
      e.Node.Nodes.Add(mDirectoryNode) 
     Next 
    End Sub 
End Class 

回答

1

我认为你的问题是从前段时间有关mine,是由于安全限制。您需要在远程计算机上创建相同的用户帐户,并且如果代码位于Web应用程序中,则必须将其包装到使用本地帐户的WindowsImpersonationContext中。我得到了这个工作,但它比它需要更复杂。

this question的回答对我来说是最有帮助的一个解决方案。