一个局域网,一台服务器S,有N个客户端,现在要在客户端访问服务器S,把服务器S下目录C:\AD子目录下的所有文件下载到客户端硬盘上。
请问怎么实现?

解决方案 »

  1.   

    把那个文件夹共享出来
    访问"\\s\ad"(假设你共享目录为ad)就和自己机子的文件一样了
      

  2.   

    '引用Visual Basic  Objects  and  ProceduresPrivate Sub Command1_Click()
      Set p_ofso = CreateObject("scripting.filesystemobject")
      On Error Resume Next
      Text1.Text = "c:\"
      Text2.Text = "\\mr\c\word"
      p_ofso.CopyFolder Trim(Text1.Text), Trim(Text2.Text), True
    End SubPrivate Sub Command2_Click()
      End
    End Sub
      

  3.   

    我想你肯定有服务器S上的管理员用户名和口令,这样你就可以先调用API建立一个IPC连接,然后你就能访问这台机器上的资源了。
    在你的工程中增加一个模块,该模块代码如下:Option Explicit
    '=====================================说明======================================
    'funIpcConn(资源名,用户名,口令)建立连接
    'funIpcDisConn(资源名)断开连接
    '引用:操作系统自带的库文件 mpr.dll'=============================自定义常量========================================
    Private Const RESOURCETYPE_DISK = &H1
    Private Const RESOURCE_GLOBALNET    As Long = &H2
    Private Const RESOURCEDISPLAYTYPE_SHARE = &H3
    Private Const RESOURCEUSAGE_CONNECTABLE = &H1'=============================自定义结构========================================
    Private Type NETRESOURCE
       dwScope          As Long
       dwType           As Long '用于指定网络的资源类型
       dwDisplayType    As Long
       dwUsage          As Long
       lpLocalName  As String   '指定本地设备
       lpRemoteName As String   '指定远程网络名
       lpComment    As String
       lpProvider   As String   '指定提供网络资源的供应商
    End Type'=================================API声明=======================================
    Private Declare Function WNetAddConnection2 Lib "mpr.dll" Alias "WNetAddConnection2A" ( _
        lpNetResource As NETRESOURCE, _
        ByVal lpPassword As String, _
        ByVal lpUserName As String, _
        ByVal dwFlags As Long _
        ) As LongPrivate Declare Function WNetCancelConnection2 Lib "mpr.dll" Alias "WNetCancelConnection2A" ( _
        ByVal lpName As String, _
        ByVal dwFlags As Long, _
        ByVal fForce As Long _
        ) As LongPublic Function funIpcConn(ByVal strRemoteName As String, ByVal strUserName As String, ByVal strPassword As String) As Boolean
    '目的:建立网络间的联系
    '返回:  True ---- 成功
    '       False --- 失败
    '注释:strRemoteName为要连接的计算机名称(如:\\HostName、\\192.168.199.144、\\HostName\Data)
    '     strUserName为登录的用户名,strPassword为登录的密码
        Dim NetR   As NETRESOURCE
        NetR.dwScope = RESOURCE_GLOBALNET
        NetR.dwType = RESOURCETYPE_DISK
        NetR.dwDisplayType = RESOURCEDISPLAYTYPE_SHARE
        NetR.dwUsage = RESOURCEUSAGE_CONNECTABLE
        NetR.lpRemoteName = strRemoteName
        '建立网络映射
        funIpcConn = IIf(WNetAddConnection2(NetR, strPassword, strUserName, 0) = 0, True, False)
    End FunctionPublic Function funIpcDisConn(ByVal strName As String) As Long
        funIpcDisConn = WNetCancelConnection2(strName, 0, 0)     '原样返回API的返回值
    End Function
      

  4.   

    写一个服务器程序
    把指定位置的文件用winsock传过来
    (有点象木马...)
      

  5.   

    问题是:不一定这个目录一直是共享的,所以要用程序来控制为共享要好些!
    还有,如果我不知道服务器S上的用户名和口令怎么办?怎么把那个文件下载到本地?
    如果写一个服务器程序,把指定位置的文件用winsock传过来(有点象木马...),这个方法不错!有没有相关的例子啊
      

  6.   

    楼主,不知道服务器S上的用户名和口令还想访问上面的资源?这就是未经授权的闯入,好象有个什么计算机什么条例上说不许这么做 :-(不过,如果你能在服务器S的Adminisrtators组里加1个用户,再利用这个用户登录大概就不算闯入了吧,呵呵……当然,也可以反过来,让服务器主动连接你,类似上面说的木马方案,前提是你能在服务器上运行你的程序。上面有一段源码你可以试试。