当前位置:编程学习 > VB >>

如何用vb读取局域网的D盘路径下的一个test.jpg文件,需要动态获取完整路径?

如何用vb读取局域网的D盘路径下的一个test.jpg文件,需要动态获取完整路径?
本人想通过客户端电脑做一个程序,过程需要读取服务端(局域网ip:192.168.1.99)D盘卷标是 本地磁盘(D),文件为text.jpg,本人在获取路径的过程中,如果D盘卷标为英文的话,如 SOFTWARE(D)可以顺利读取到正确的路径,如果是中文,本地磁盘(D)这样的名称则是无法读取完整的路径,现在请教各位高手有什么办法可以帮小弟解决,谢谢!感激不敬!
或者高手如果能够一次性用vb直接获取服务端test.jpg的完整路径,那就更好了,谢谢 哦! 生成一个批处理文件a.bat:
net use z: \\192.168.1.99\d$ password
dir /b /s z:\text.jpg >pf.txt
net use z: /delete

Shell "a.bat",vbHide
'然后读文件pf.txt的内容
zhao4zhong1 你好,谢谢你回答,不过还请您详细点说明一下详细的处理方法,或者有没有vb的相关源码实例?谢谢
引用 1 楼 zhao4zhong1 的回复:
生成一个批处理文件a.bat:
net use z: \\192.168.1.99\d$ password
dir /b /s z:\text.jpg >pf.txt
net use z: /delete

Shell "a.bat",vbHide
'然后读文件pf.txt的内容


zhao4zhong1 你好,谢谢你回答,不过还请您详细点说明一下详细的处理方法,或者有没有vb的相关源码实例?谢谢  将其中的password替换为共享名\\192.168.1.99\d$对应密码
dim f as integer
dim pf as string
f=freefile()
open "a.bat" for output as #f
print #f,"net use z: \\192.168.1.99\d$ password"
print #f,"dir /b /s z:\text.jpg >pf.txt"
print #f,"net use z: /delete"
close #f
shell "a.bat",vbHide
kill a.bat
f=freefile()
open "pf.txt" for input as #f
line input #f,pf
close #f
debug.print "pf=["+pf+"]"
第10行kill a.bat应改为kill "a.bat"
引用 4 楼 zhao4zhong1 的回复:
将其中的password替换为共享名\\192.168.1.99\d$对应密码
dim f as integer
dim pf as string
f=freefile()
open "a.bat" for output as #f
print #f,"net use z: \\192.168.1.99\d$ password"
print #f,"dir /b /s z:\text.jpg >pf.txt"
print #f,"net use z: /delete"
close #f
shell "a.bat",vbHide
kill a.bat
f=freefile()
open "pf.txt" for input as #f
line input #f,pf
close #f
debug.print "pf=["+pf+"]"

好的,谢谢,我试试!非常感谢
引用 4 楼 zhao4zhong1 的回复:
将其中的password替换为共享名\\192.168.1.99\d$对应密码
dim f as integer
dim pf as string
f=freefile()
open "a.bat" for output as #f
print #f,"net use z: \\192.168.1.99\d$ password"
print #f,"dir /b /s z:\text.jpg >pf.txt"
print #f,"net use z: /delete"
close #f
shell "a.bat",vbHide
kill a.bat
f=freefile()
open "pf.txt" for input as #f
line input #f,pf
close #f
debug.print "pf=["+pf+"]"

你好 ,测试了一下,提示12行 Open "pf.txt" For Input As #f 这句 文件为找到
引用 6 楼 tim_liang999 的回复:
Quote: 引用 4 楼 zhao4zhong1 的回复:

将其中的password替换为共享名\\192.168.1.99\d$对应密码
dim f as integer
dim pf as string
f=freefile()
open "a.bat" for output as #f
print #f,"net use z: \\192.168.1.99\d$ password"
print #f,"dir /b /s z:\text.jpg >pf.txt"
print #f,"net use z: /delete"
close #f
shell "a.bat",vbHide
kill a.bat
f=freefile()
open "pf.txt" for input as #f
line input #f,pf
close #f
debug.print "pf=["+pf+"]"

好的,谢谢,我试试!非常感谢


结帖率:20% #7 得分:0 回复于: 2013-12-16 15:22:09 
引用 4 楼 zhao4zhong1 的回复:
将其中的password替换为共享名\\192.168.1.99\d$对应密码

Visual Basic code?123456789101112131415 dim f as integer dim pf as string f=freefile() open "a.bat" for output as #f print #f,"net use z: \\192.168.1.99\d$ password"print #f,"dir /b /s z:\text.jpg >pf.txt"print #f,"net use z: /delete"close #f shell "a.bat",vbHide kill a.bat f=freefile() open "pf.txt" for input as #f line input #f,pf close #f debug.print "pf=["+pf+"]" 
你好 ,测试了一下,提示12行 Open "pf.txt" For Input As #f 这句 文件为找到  

引用 4 楼 zhao4zhong1 的回复:
将其中的password替换为共享名\\192.168.1.99\d$对应密码
dim f as integer
dim pf as string
f=freefile()
open "a.bat" for output as #f
print #f,"net use z: \\192.168.1.99\d$ password"
print #f,"dir /b /s z:\text.jpg >pf.txt"
print #f,"net use z: /delete"
close #f
shell "a.bat",vbHide
kill a.bat
f=freefile()
open "pf.txt" for input as #f
line input #f,pf
close #f
debug.print "pf=["+pf+"]"


结帖率:20% #7 得分:0 回复于: 2013-12-16 15:22:09 
引用 4 楼 zhao4zhong1 的回复:
将其中的password替换为共享名\\192.168.1.99\d$对应密码

你好 ,测试了一下,提示12行 Open "pf.txt" For Input As #f 这句 文件未找到   一个可能是你的代码跑得比磁盘写入快。做一个循环,检查 pf.txt 是否存在。

另一个可能是路径问题。你的 pf.txt 写在哪里了,你读的路径是哪里? quote=引用 4 楼 zhao4zhong1 的回复:]
将其中的password替换为共享名\\192.168.1.99\d$对应密码
dim f as integer
dim pf as string
f=freefile()
open "a.bat" for output as #f
print #f,"net use z: \\192.168.1.99\d$ password"
print #f,"dir /b /s z:\text.jpg >pf.txt"
print #f,"net use z: /delete"
close #f
shell "a.bat",vbHide
kill a.bat
f=freefile()
open "pf.txt" for input as #f
line input #f,pf
close #f
debug.print "pf=["+pf+"]"

zhao4zhong1 你好,再请问一下,pt.txt 文件打开里面是空白的是不是与这个有关
下面是我修改后的代码
Dim f As Integer
Dim pf As String
f = FreeFile()
Open "a.bat" For Output As #f
Print #f, "net use z: \\192.168.1.66\d$ admin"
Print #f, "dir /b /s z:\11.bmp >pf.txt"
Print #f, "net use z: /delete"
Close #f
Shell "a.bat", vbHide
Kill "a.bat"
Dim f As Integer
Dim pf As String

f = FreeFile()
Open "pf.txt" For Input As #f
Line Input #f, pf
Close #f
Debug.Print "pf=[" + pf + "]"

在局域网192.168.1.66中的D盘有个文件11.bmp
[
引用 4 楼 zhao4zhong1 的回复:
将其中的password替换为共享名\\192.168.1.99\d$对应密码
dim f as integer
dim pf as string
f=freefile()
open "a.bat" for output as #f
print #f,"net use z: \\192.168.1.99\d$ password"
print #f,"dir /b /s z:\text.jpg >pf.txt"
print #f,"net use z: /delete"
close #f
shell "a.bat",vbHide
kill a.bat
f=freefile()
open "pf.txt" for input as #f
line input #f,pf
close #f
debug.print "pf=["+pf+"]"


以下是我修改后的代码:
Dim f As Integer
Dim pf As String
f = FreeFile()
Open "a.bat" For Output As #f
Print #f, "net use z: \\192.168.1.66\d$ admin"
Print #f, "dir /b /s z:\11.bmp >pf.txt"
Print #f, "net use z: /delete"
Close #f
Shell "a.bat", vbHide
Kill "a.bat"


f = FreeFile()
Open "pf.txt" For Input As #f
Line Input #f, pf
Close #f
Debug.Print "pf=[" + pf + "]"
帮我看看哪里出错了,提示文件未找到,我运行后打开 pt.txt 里面是空的,是不是与这个有关,我是想获取 192.168.1.66的D盘下的一个11.bmp 图片文件的路径。
 Dim f As Integer
 Dim pf As String
 Dim after as Double
 f = FreeFile()
 Open app.path+"\a.bat" For Output As #f
 Print #f, "net use z: \\192.168.1.66\d$ admin"
 Print #f, "dir /b /s z:\11.bmp >"+app.path++"\pf.txt"
 Print #f, "net use z: /delete"
 Close #f
 Shell app.path+"\a.bat", vbHide

 after=Now+5#/24#/3600#
 Do
    DoEvents
    if Dir(app.path+"\pf.txt")<>"" then Exit do
    if Now>after Then
        Debug.Print "wait file "+app.path+"\pf.txt 5s overtime!"
    endif
 Loop
 f = FreeFile()
 Open app.path+"\pf.txt" For Input As #f
 Line Input #f, pf
 Close #f
 Debug.Print "pf=[" + pf + "]"
 Kill app.path+"\a.bat"

还可以试试:
ServerShare = "\\192.168.3.56\d$"
UserName = "somedomain\someuser"
Password = "somepassword"

Set NetworkObject = CreateObject("WScript.Network")

NetworkObject.MapNetworkDrive "", ServerShare, False, UserName, Password

Set FSO = CreateObject("Scripting.FileSystemObject")
    Set Directory = FSO.GetFolder(ServerShare)
        For Each FileName In Directory.Files
            WScript.Echo FileName.Name
        Next
        Set FileName = Nothing
    Set Directory = Nothing
Set FSO = Nothing

NetworkObject.RemoveNetworkDrive ServerShare, True, False

Set NetworkObject = Nothing
补充:VB ,  基础类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,