CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
【经验总结】不能实施并行处理的情况 浅谈并行编程中的任务分解模式
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  数据库(包含打印,安装,报表)

VB访问局域网硬盘某个目录下的文件的实现

楼主riverlj(yumu)2004-12-11 14:59:37 在 VB / 数据库(包含打印,安装,报表) 提问

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

1 楼wwqna(york)回复于 2004-12-11 15:02:32 得分 3

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

2 楼aohan(aohan)回复于 2004-12-11 15:24:32 得分 5

'引用Visual   Basic     Objects     and     Procedures  
   
  Private   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   Sub  
   
  Private   Sub   Command2_Click()  
      End  
  End   Sub  
  Top

3 楼riverlj(yumu)回复于 2004-12-11 15:51:20 得分 0

哦~先试下,再结贴!先谢谢两位了     :)Top

4 楼tztz520(午夜逛街)回复于 2004-12-11 16:09:32 得分 2

可以将这个路径映射到本地硬盘再操作.Top

5 楼LittleLittleBoy(小小孩)回复于 2004-12-11 16:47:55 得分 0

好像要密码的吧,没有登陆怎么行啊   ?  
   
            我试着读取局域网硬盘空间大小,没有登录果就出错了啊,怎么用程序登录局域网啊Top

6 楼riverlj(yumu)回复于 2004-12-12 17:57:02 得分 0

是啊~局域网访问许需要用户名和密码吗?  
  还有怎样设置文件夹为共享?Top

7 楼DawnPine(拂晓的松)回复于 2004-12-13 08:37:47 得分 15

我想你肯定有服务器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   Long  
   
  Private   Declare   Function   WNetCancelConnection2   Lib   "mpr.dll"   Alias   "WNetCancelConnection2A"   (   _  
          ByVal   lpName   As   String,   _  
          ByVal   dwFlags   As   Long,   _  
          ByVal   fForce   As   Long   _  
          )   As   Long  
   
  Public   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   Function  
   
  Public   Function   funIpcDisConn(ByVal   strName   As   String)   As   Long  
          funIpcDisConn   =   WNetCancelConnection2(strName,   0,   0)           '原样返回API的返回值  
  End   Function  
   
   
  Top

8 楼xayzmb(行者)回复于 2004-12-13 11:28:19 得分 5

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

9 楼sssmmm()回复于 2004-12-13 11:40:01 得分 0

upTop

10 楼myhgyp(也许是这样的,信不信由你)回复于 2004-12-13 12:15:10 得分 5

最简单、最原始的方法肯定没问题:  
  1、把该目录设为共享  
  2、把每台客户端的机器登录用户加入到服务器的用户列表中去(手工做一下即可),要注意的是:客户端的登录用户名和密码要也加入到服务器用户列表中的一样就可以了。  
   
  有时笨办法也是能解决问题的,试试吧,呵呵。。Top

11 楼riverlj(yumu)回复于 2004-12-17 20:19:42 得分 0

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

12 楼DawnPine(拂晓的松)回复于 2004-12-21 08:51:08 得分 5

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

相关问题

  • VB中如何访问局域网中的文件?
  • 局域网内xp访问
  • 局域网中在别人没有共享时如何访问对方的硬盘
  • vb访问局域网中的sql服务器里面的数据库,死活只能在本地访问
  • 局域网外访问局域网内FTP???
  • access97,局域网,vb,死机???
  • 如何通过VB编程来访问局域网里其他机子的注册表??是高手的快来!!
  • 局域网中为什么不能在网上邻居中访问装有win2k的机器的硬盘?怎样才能访问?
  • 关于局域网访问密码?
  • 跨局域网SQL Server的访问

关键词

  • 局域网
  • 服务器
  • 文件
  • 口令
  • 硬盘
  • 用户
  • 连接
  • 客户
  • 服务器s
  • 目录

得分解答快速导航

  • 帖主:riverlj
  • wwqna
  • aohan
  • tztz520
  • DawnPine
  • xayzmb
  • myhgyp
  • DawnPine

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
惹火投票。。火热进行中...
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
CSDN网站24小时值班电话:13552009689
Copyright © 2000-2009, CSDN.NET, All Rights Reserved
GongshangLogo