我正在尝试找到像Environ
这样的函数来查找我公司的主驱动器在特定PC上映射到的驱动器。
使用文件路径“G:\ Eworking \ SET \ Operations \ file”我知道我的PC已被映射,以便该文件路径在G驱动器内,但其他路径可能被不同地映射,所以我想确定它是哪个
我已经尝试了if else方法来完成字母表并且之前做了if Dir([filepath]) then
(见下文),但我想知道是否有更好的方法可以做到这一点?
Sub LoopThroughDrives()
sFilePath As String
sFilePath = ":\Eworking\SET\Operations\file"
If Dir("A" & sFilePath) > 0 Then
msgbox ("It's in drive A")
Else
If Dir("B" & sFilePath) > 0 Then
msgbox ("It's in drive B")
Else
If Dir("C" & sFilePath) > 0 Then
msgbox ("It's in drive C")
Else
'...........................
'All other letters of the alphabet, checking each possibility
'...........................
End If
End If
End If
End Sub
答案 0 :(得分:7)
你可以得到这样的驱动器号和路径:
For Each d In CreateObject("Scripting.FileSystemObject").Drives
Debug.Print d.DriveLetter, d.Path, d.ShareName
Next
答案 1 :(得分:5)
使用ASCII字符的For ... Next循环似乎是合适的。
dim c as integer
for c = 65 to 90
If CBool(Len(Dir(Chr(c) & sFilePath))) Then
msgbox "It's in drive " & Chr(c) '<~~msgbox, not magbox
exit for
end if
next c
if c > 90 then msgbox "never found"