局域网中文件的拷贝???

时间:2022-02-02 12:18:35
在局域网中有A/B 两台机器, B机器的ACCESS文件已经共享,在A机器上"运行:\\IP\共享文件夹\文件"也可以访问;

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

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

20 个解决方案

#1


直接通过共享 copy 当然可以,现在的问题是我想通过 ASP 页面来实现; (我A 机器是WEB 服务器)

急~~~~~~~~~~~~~~~~~~~~

#2


up

#3


该回复被版主删除

#4


访问共享中的文件,还要用纯的VBScript代码了,在WEB目录的脚本专用目录写一个.vbs的文件,实现操作.具体步骤看Windows脚本手册.

#5


' VBScript。这是部分代码,实际上在ASP中也是可用的,但那要开放很多权限,不安全,建议做一个.vbs文件,放到脚本专用目录里,而非WEB目录.
Dim net
Set net = CreateObject("WScript.Network")    
net.MapNetworkDrive "I:","\\computer2\public","True","jdoe","jdoepassword"

#6


你如果想共用一个ACCESS数据库,不妨试试ODBC里的数据源,把链接文件改用DSN就搞定了,如果只为拷贝文件就在A机器上将B机器的文件映射到A机器吧

#7


我在网上查到有用FSO的:

<%
'文件拷贝----------------
Set   fso   =   Server.CreateObject("Scripting.FileSystemObject")   

if fso.fileexists("\\10.97.1.35\barcodeprinter.mdb") then
response.write("文件已存在")
fso.copyfile "\\IP\bar\qq.mdb","d:\downloads\kk.mdb",true ' //true代表强制覆盖
else
response.write("文件不存在")
end if

%>

但我的\\ip\bar\共享目录是有权限的(用户名和密码),请问上述语句能不能加用户名和密码?

另外:
nanyang9(奋斗…) 朋友说的.VBS
访问共享中的文件,还要用纯的VBScript代码了,在WEB目录的脚本专用目录写一个.vbs的文件,实现操作.具体步骤看Windows脚本手册.

具体怎么操作,没有接触过,实在不好意思,请帮帮忙~~~~~~~`
-------------------------------
我想定时将B机器上的ACCESS文件拷贝到A(web 服务器)上进行查询使用;如果用ASP直接访问;速度太慢~~~~~

#8


稍等,就当我复习一下.

#9


多谢啊

#10


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的方式呢,我试了一下,没试出来.

#11


老大:带用户名和密码的ASP语句怎么写?

#12


老大:上面的ASP程序执行后报:
我只是改了哈:NY 为IP;   jmail_free.msi为我的文件名;

HTTP 500 - 内部服务器错误; 有其它什么问题吗?

#13


<%
'文件拷贝----------------
Set   fso   =   Server.CreateObject("Scripting.FileSystemObject")   
if fso.fileexists("\\10.97.1.35\qjcf_no1\barcodeprinter.mdb") then
response.write("文件已存在")
fso.copyfile "\\10.97.1.35\qjcf_no1\barcodeprinter.mdb","d:\web\barcodeprinter.mdb",true ' //true代表强制覆盖
else
response.write("文件不存在")
end if

%>
怎么显示文件不存在? 我直接运行:\\10.97.1.35\qjcf_no1\barcodeprinter.mdb 能找到文件的啊

上面语句有什么问题吗?

#14


你那可能是网络文件需要别的判断方式吧。
至于你问我的问题,如下:

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"))


改成你的就是
If Not fso.DriveExists(fso.GetDriveName(Path)) Then
  Set net = Server.CreateObject("WScript.Network")
  net.MapNetworkDrive Path,"\\10.97.1.35\qjcf_no1","False","username","password"
End If
Set f = fso.GetFile(Path&"\barcodeprinter.mdb")
f.Copy(Server.MapPath("barcodeprinter.mdb"))' 默认是强制覆盖

#15


一样,报:
HTTP 500 - 内部服务器错误;

#16


FSO.asp:

<%
If Not fso.DriveExists(fso.GetDriveName(Path)) Then
  Set net = Server.CreateObject("WScript.Network")
  net.MapNetworkDrive Path,"\\10.97.1.35\qjcf_no1","False","username","password"
End If
Set f = fso.GetFile(Path&"\barcodeprinter.mdb")
f.Copy(Server.MapPath("barcodeprinter.mdb"))' 默认是强制覆盖
%>

#17


<%
If Not fso.DriveExists(fso.GetDriveName(Path)) Then
  Set net = Server.CreateObject("WScript.Network")
  net.MapNetworkDrive Path,"\\10.97.1.35\qjcf_no1","False","xcopy","xcopy"
End If
Set f = fso.GetFile(Path&"\barcodeprinter.mdb")
f.Copy(Server.MapPath("barcodeprinter.mdb"))' 默认是强制覆盖
%>

#18


是哪一行错误呢?我这里在没有用户名与密码的时候多次测试正常。

#19


要不要开guest ?

#20


无法显示网页....

HTTP 500 - 内部服务器错误;

#21


哈哈~

原来是:if fso.fileexists("\\10.97.1.35\qjcf_no1\barcodeprinter.mdb")  这句的问题;
判断是不存在文件;但取消判定语句,直接执行:
fso.copyfile "\\10.97.1.35\qjcf_no1\barcodeprinter.mdb","d:\web\barcodeprinter.mdb",true '

又可以拷贝成功!!!!!!! 是什么原因哦????

没搞清楚?????


#1


直接通过共享 copy 当然可以,现在的问题是我想通过 ASP 页面来实现; (我A 机器是WEB 服务器)

急~~~~~~~~~~~~~~~~~~~~

#2


up

#3


该回复被版主删除

#4


访问共享中的文件,还要用纯的VBScript代码了,在WEB目录的脚本专用目录写一个.vbs的文件,实现操作.具体步骤看Windows脚本手册.

#5


' VBScript。这是部分代码,实际上在ASP中也是可用的,但那要开放很多权限,不安全,建议做一个.vbs文件,放到脚本专用目录里,而非WEB目录.
Dim net
Set net = CreateObject("WScript.Network")    
net.MapNetworkDrive "I:","\\computer2\public","True","jdoe","jdoepassword"

#6


你如果想共用一个ACCESS数据库,不妨试试ODBC里的数据源,把链接文件改用DSN就搞定了,如果只为拷贝文件就在A机器上将B机器的文件映射到A机器吧

#7


我在网上查到有用FSO的:

<%
'文件拷贝----------------
Set   fso   =   Server.CreateObject("Scripting.FileSystemObject")   

if fso.fileexists("\\10.97.1.35\barcodeprinter.mdb") then
response.write("文件已存在")
fso.copyfile "\\IP\bar\qq.mdb","d:\downloads\kk.mdb",true ' //true代表强制覆盖
else
response.write("文件不存在")
end if

%>

但我的\\ip\bar\共享目录是有权限的(用户名和密码),请问上述语句能不能加用户名和密码?

另外:
nanyang9(奋斗…) 朋友说的.VBS
访问共享中的文件,还要用纯的VBScript代码了,在WEB目录的脚本专用目录写一个.vbs的文件,实现操作.具体步骤看Windows脚本手册.

具体怎么操作,没有接触过,实在不好意思,请帮帮忙~~~~~~~`
-------------------------------
我想定时将B机器上的ACCESS文件拷贝到A(web 服务器)上进行查询使用;如果用ASP直接访问;速度太慢~~~~~

#8


稍等,就当我复习一下.

#9


多谢啊

#10


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的方式呢,我试了一下,没试出来.

#11


老大:带用户名和密码的ASP语句怎么写?

#12


老大:上面的ASP程序执行后报:
我只是改了哈:NY 为IP;   jmail_free.msi为我的文件名;

HTTP 500 - 内部服务器错误; 有其它什么问题吗?

#13


<%
'文件拷贝----------------
Set   fso   =   Server.CreateObject("Scripting.FileSystemObject")   
if fso.fileexists("\\10.97.1.35\qjcf_no1\barcodeprinter.mdb") then
response.write("文件已存在")
fso.copyfile "\\10.97.1.35\qjcf_no1\barcodeprinter.mdb","d:\web\barcodeprinter.mdb",true ' //true代表强制覆盖
else
response.write("文件不存在")
end if

%>
怎么显示文件不存在? 我直接运行:\\10.97.1.35\qjcf_no1\barcodeprinter.mdb 能找到文件的啊

上面语句有什么问题吗?

#14


你那可能是网络文件需要别的判断方式吧。
至于你问我的问题,如下:

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"))


改成你的就是
If Not fso.DriveExists(fso.GetDriveName(Path)) Then
  Set net = Server.CreateObject("WScript.Network")
  net.MapNetworkDrive Path,"\\10.97.1.35\qjcf_no1","False","username","password"
End If
Set f = fso.GetFile(Path&"\barcodeprinter.mdb")
f.Copy(Server.MapPath("barcodeprinter.mdb"))' 默认是强制覆盖

#15


一样,报:
HTTP 500 - 内部服务器错误;

#16


FSO.asp:

<%
If Not fso.DriveExists(fso.GetDriveName(Path)) Then
  Set net = Server.CreateObject("WScript.Network")
  net.MapNetworkDrive Path,"\\10.97.1.35\qjcf_no1","False","username","password"
End If
Set f = fso.GetFile(Path&"\barcodeprinter.mdb")
f.Copy(Server.MapPath("barcodeprinter.mdb"))' 默认是强制覆盖
%>

#17


<%
If Not fso.DriveExists(fso.GetDriveName(Path)) Then
  Set net = Server.CreateObject("WScript.Network")
  net.MapNetworkDrive Path,"\\10.97.1.35\qjcf_no1","False","xcopy","xcopy"
End If
Set f = fso.GetFile(Path&"\barcodeprinter.mdb")
f.Copy(Server.MapPath("barcodeprinter.mdb"))' 默认是强制覆盖
%>

#18


是哪一行错误呢?我这里在没有用户名与密码的时候多次测试正常。

#19


要不要开guest ?

#20


无法显示网页....

HTTP 500 - 内部服务器错误;

#21


哈哈~

原来是:if fso.fileexists("\\10.97.1.35\qjcf_no1\barcodeprinter.mdb")  这句的问题;
判断是不存在文件;但取消判定语句,直接执行:
fso.copyfile "\\10.97.1.35\qjcf_no1\barcodeprinter.mdb","d:\web\barcodeprinter.mdb",true '

又可以拷贝成功!!!!!!! 是什么原因哦????

没搞清楚?????