局域网中文件的拷贝???
在局域网中有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 "))