日期:2014-05-17  浏览次数:20813 次

局域网中文件的拷贝???
在局域网中有A/B   两台机器,   B机器的ACCESS文件已经共享,在A机器上 "运行:\\IP\共享文件夹\文件 "也可以访问;

现在我想在ASP   页面中实现将B   机器上的ACCESS   文件拷贝到A   机器上,怎么实现啊???

请指点指点~~~~~~~~~~~~

------解决方案--------------------
访问共享中的文件,还要用纯的VBScript代码了,在WEB目录的脚本专用目录写一个.vbs的文件,实现操作.具体步骤看Windows脚本手册.
------解决方案--------------------
' VBScript。这是部分代码,实际上在ASP中也是可用的,但那要开放很多权限,不安全,建议做一个.vbs文件,放到脚本专用目录里,而非WEB目录.
Dim net
Set net = CreateObject( "WScript.Network ")
net.MapNetworkDrive "I: ", "\\computer2\public ", "True ", "jdoe ", "jdoepassword "
------解决方案--------------------
你如果想共用一个ACCESS数据库,不妨试试ODBC里的数据源,把链接文件改用DSN就搞定了,如果只为拷贝文件就在A机器上将B机器的文件映射到A机器吧
------解决方案--------------------
稍等,就当我复习一下.
------解决方案--------------------
zz.asp
------------------------------------
<%@LANGUAGE= "VBSCRIPT " CODEPAGE= "936 "%>
<html>
<head>
<meta http-equiv= "Content-Type " content= "text/html; charset=gb2312 " />
<title> 复制局域网中的文件 </title>
</head>

<body>
<%
' VB Script Document
Dim Path,fso,net,f '初始化
Set fso = Server.CreateObject( "Scripting.FileSystemObject ")
Path= "X: "

If Not fso.DriveExists(fso.GetDriveName(Path)) Then '如果不存在映射则创建映射
Set net = Server.CreateObject( "WScript.Network ") '创建Network对象
'将电脑NY上共享的soft文件夹映射到本地磁盘X中;
'False:不把映射存储在当前的用户配置文件中; 后面可再加两个参数,分别是用户名与密码.
net.MapNetworkDrive Path, "\\NY\soft ", "False "
End If

'获取到映射中的文件的句柄。
Set f = fso.GetFile(Path& "\jmail_free.msi ")
'将文件复制当前目录。
f.Copy(Server.MapPath( "jmail_free.msi "))

'删除本地名称为X:的映射,True表示强制删除,不管当前有没有人正在使用这个映射.
net.RemoveNetworkDrive Path, "True " '也可以不断开,以后直接像用本地的一样.
Response.Write( "OK ")
%>
</body>
</html>

这是ASP文件,需要开放创建FSO与WScript.Network对象的权限.

在Windows下直接双击运行下面这个.vbs文件也是可以的(前提是.vbs文件的默认打开方式Microsoft (r) Windows Based Script Host没有更改)

zz.vbs
------------------------------------------------
' VB Script Document
Dim Path,fso,net,f
Set fso = CreateObject( "Scripting.FileSystemObject ")
Path= "X: "
If Not fso.DriveExists(fso.GetDriveName(Path)) Then
Set net = CreateObject( "WScript.Network ")
net.MapNetworkDrive Path, "\\NY\soft ", "False "
End If
Set f = fso.GetFile(Path& "/jmail_free.msi ")
f.Copy( "jmail_free.msi ")
net.RemoveNetworkDrive Path, "True "

有没有更好的执行这个.vbs的方式呢,我试了一下,没试出来.
------解决方案--------------------
你那可能是网络文件需要别的判断方式吧。
至于你问我的问题,如下:

If Not fso.DriveExists(fso.GetDriveName(Path)) Then '如果不存在映射则创建映射
Set net = Server.CreateObject( "WScript.Network ") '创建Network对象
'将电脑NY上共享的soft文件夹映射到本地磁盘X中;
'False:不把映射存储在当前的用户配置文件中; 后面可再加两个参数,分别是用户名与密码.
net.MapNetworkDrive Path, "\\NY\soft ", "False "
End If

'获取到映射中的文件的句柄。
Set f = fso.GetFile(Path& "\jmail_free.msi ")
'将文件复制当前目录。
f.Copy(Server.MapPath( "jmail_free.msi "))