MSasu Posted July 5, 2011 Posted July 5, 2011 I used the piece of code below to validate existence of a network map; unfortunately this doesn't work under Windows 7 (probably due to the way this operating system is storing those mappings). On Windows 7 this returns always False. Set FSysObj = CreateObject("Scripting.FileSystemObject") If FSysObj.DriveExists("Q:\") = False Then MsgBox "Drive not available!" End If Please, can someone give me some hints in this matter? Thank you. Regards, Mircea Quote
BlackBox Posted July 5, 2011 Posted July 5, 2011 I've just recently upgraded to Win7, and use Scripting.FileSystemObject with LISP without issue. I've been wanting to port a version of my code to .NET, so I will test at work tomorrow. Quote
BlackBox Posted July 5, 2011 Posted July 5, 2011 (edited) I just tested this on Win7 (64-Bit) + Civil 3D 2011, and was successful. Code tested: [font=Consolas][size=2][color=#0000ff][font=Consolas][size=2][color=#0000ff][font=Consolas][size=2][color=#0000ff]Imports[/color][/size][/font][/color][/size][/font][/color][/size][/font][font=Consolas][size=2][font=Consolas][size=2] System[/size][/font] [/size][/font][font=Consolas][size=2][color=#0000ff][font=Consolas][size=2][color=#0000ff][font=Consolas][size=2][color=#0000ff]Imports[/color][/size][/font][/color][/size][/font][/color][/size][/font][font=Consolas][size=2][font=Consolas][size=2] System.Runtime[/size][/font][/size][/font] [font=Consolas][size=2][color=#0000ff][font=Consolas][size=2][color=#0000ff][font=Consolas][size=2][color=#0000ff]Imports[/color][/size][/font][/color][/size][/font][/color][/size][/font][font=Consolas][size=2][font=Consolas][size=2] Autodesk.AutoCAD.ApplicationServices[/size][/font] [/size][/font][font=Consolas][size=2][color=#0000ff][font=Consolas][size=2][color=#0000ff][font=Consolas][size=2][color=#0000ff]Imports[/color][/size][/font][/color][/size][/font][/color][/size][/font][font=Consolas][size=2][font=Consolas][size=2] Autodesk.AutoCAD.Runtime[/size][/font] [/size][/font][font=Consolas][size=2][font=Consolas][size=2] [/size][/font] [/size][/font][font=Consolas][size=2][color=#0000ff][font=Consolas][size=2][color=#0000ff][font=Consolas][size=2][color=#0000ff]Public [/color][/size][/font][/color][/size][/font][/color][/size][/font][font=Consolas][size=2][color=#0000ff][font=Consolas][size=2][color=#0000ff][font=Consolas][size=2][color=#0000ff]Class [/color][/size][/font][/color][/size][/font][/color][/size][/font][font=Consolas][size=2][color=#2b91af][font=Consolas][size=2][color=#2b91af][font=Consolas][size=2][color=#2b91af]Commands[/color][/size][/font][/color][/size][/font][/color][/size][/font] [font=Consolas][size=2][font=Consolas][size=2] <[/size][/font][/size][/font][font=Consolas][size=2][color=#2b91af][font=Consolas][size=2][color=#2b91af][font=Consolas][size=2][color=#2b91af]CommandMethod[/color][/size][/font][/color][/size][/font][/color][/size][/font][font=Consolas][size=2][font=Consolas][size=2]([/size][/font][/size][/font][font=Consolas][size=2][color=#a31515][font=Consolas][size=2][color=#a31515][font=Consolas][size=2][color=#a31515]"FSOTEST"[/color][/size][/font][/color][/size][/font][/color][/size][/font][font=Consolas][size=2][font=Consolas][size=2])> _[/size][/font] [/size][/font][font=Consolas][size=2][color=#0000ff][font=Consolas][size=2][color=#0000ff][font=Consolas][size=2][color=#0000ff] Public [/color][/size][/font][/color][/size][/font][/color][/size][/font][font=Consolas][size=2][color=#0000ff][font=Consolas][size=2][color=#0000ff][font=Consolas][size=2][color=#0000ff]Sub[/color][/size][/font][/color][/size][/font][/color][/size][/font][font=Consolas][size=2][font=Consolas][size=2] FSOTEST()[/size][/font] [/size][/font][font=Consolas][size=2][color=#0000ff][font=Consolas][size=2][color=#0000ff][font=Consolas][size=2][color=#0000ff] Dim[/color][/size][/font][/color][/size][/font][/color][/size][/font][font=Consolas][size=2][font=Consolas][size=2] FSysObj = CreateObject([/size][/font][/size][/font][font=Consolas][size=2][color=#a31515][font=Consolas][size=2][color=#a31515][font=Consolas][size=2][color=#a31515]"Scripting.FileSystemObject"[/color][/size][/font][/color][/size][/font][/color][/size][/font][font=Consolas][size=2][font=Consolas][size=2])[/size][/font] [/size][/font][font=Consolas][size=2][color=#008000][font=Consolas][size=2][color=#008000][font=Consolas][size=2][color=#008000][font=Consolas][size=2][color=#008000][font=Consolas][size=2][color=#008000][font=Consolas][size=2][color=#008000] 'If FSysObj.DriveExists("V:\") = False Then[/color][/size][/font] [/color][/size][/font][/color][/size][/font][font=Consolas][size=2][color=#0000ff][font=Consolas][size=2][color=#0000ff][font=Consolas][size=2][color=#0000ff][font=Consolas][size=2][color=#0000ff][font=Consolas][size=2][color=#0000ff][font=Consolas][size=2][color=#0000ff] If[/color][/size][/font][/color][/size][/font][/color][/size][/font][font=Consolas][size=2][font=Consolas][size=2] FSysObj.DriveExists([/size][/font][/size][/font][font=Consolas][size=2][color=#a31515][font=Consolas][size=2][color=#a31515][font=Consolas][size=2][color=#a31515]"Q:\"[/color][/size][/font][/color][/size][/font][/color][/size][/font][font=Consolas][size=2][font=Consolas][size=2]) = [/size][/font][/size][/font][font=Consolas][size=2][color=#0000ff][font=Consolas][size=2][color=#0000ff][font=Consolas][size=2][color=#0000ff]False [/color][/size][/font][/color][/size][/font][/color][/size][/font][font=Consolas][size=2][color=#0000ff][font=Consolas][size=2][color=#0000ff][font=Consolas][size=2][color=#0000ff]Then[/color][/size][/font] [/color][/size][/font][/color][/size][/font][/color][/size][/font][/color][/size][/font][/color][/size][/font][/color][/size][/font][/color][/size][/font][/color][/size][/font][font=Consolas][size=2][font=Consolas][size=2] MsgBox([/size][/font][/size][/font][font=Consolas][size=2][color=#a31515][font=Consolas][size=2][color=#a31515][font=Consolas][size=2][color=#a31515]"Drive not available!"[/color][/size][/font][/color][/size][/font][/color][/size][/font][font=Consolas][size=2][font=Consolas][size=2])[/size][/font] [/size][/font][font=Consolas][size=2][color=#0000ff][font=Consolas][size=2][color=#0000ff][font=Consolas][size=2][color=#0000ff] Else[/color][/size][/font] [/color][/size][/font][/color][/size][/font][font=Consolas][size=2][font=Consolas][size=2] MsgBox([/size][/font][/size][/font][font=Consolas][size=2][color=#a31515][font=Consolas][size=2][color=#a31515][font=Consolas][size=2][color=#a31515]"Drive exists!"[/color][/size][/font][/color][/size][/font][/color][/size][/font][font=Consolas][size=2][font=Consolas][size=2])[/size][/font] [/size][/font][font=Consolas][size=2][color=#0000ff][font=Consolas][size=2][color=#0000ff][font=Consolas][size=2][color=#0000ff] End [/color][/size][/font][/color][/size][/font][/color][/size][/font][font=Consolas][size=2][color=#0000ff][font=Consolas][size=2][color=#0000ff][font=Consolas][size=2][color=#0000ff]If[/color][/size][/font] [/color][/size][/font][/color][/size][/font][font=Consolas][size=2][color=#0000ff][font=Consolas][size=2][color=#0000ff][font=Consolas][size=2][color=#0000ff] End [/color][/size][/font][/color][/size][/font][/color][/size][/font][font=Consolas][size=2][color=#0000ff][font=Consolas][size=2][color=#0000ff][font=Consolas][size=2][color=#0000ff]Sub[/color][/size][/font][/color][/size][/font][/color][/size][/font] [size=2][font=Consolas][color=#0000ff][size=2][font=Consolas][color=#0000ff][size=2][font=Consolas][color=#0000ff]End [/color][/font][/size][/color][/font][/size][/color][/font][/size][font=Consolas][size=2][color=#0000ff][font=Consolas][size=2][color=#0000ff][font=Consolas][size=2][color=#0000ff]Class[/color][/size][/font][/color][/size][/font][/color][/size][/font] Note - Compiled (.NET Framework 3.5) & debugged using Visual Basic 2010 Express. Edited July 5, 2011 by BlackBox Code formatting, spaced removed when pasted. Quote
MSasu Posted July 7, 2011 Author Posted July 7, 2011 RenderMan, thank you for your answers. I managed to find another Windows 7 station and that piece of code is working as expected. So, the issue is not related to the operating system as I suspected, but rather is something with that particular workstation. Regards, Mircea Quote
Jeff H Posted July 7, 2011 Posted July 7, 2011 Not sure about Scripting.FileSystemObject but for .NET could use DriveInfo and P/Invoke WnetGetConnection to get the UNC path for a mapped drive I can not get the code to format correctly [color=blue]Imports[/color] System.IO [color=blue]Module[/color] [color=#2b91af]Module1[/color] [color=blue]Sub[/color] Main() [color=blue]For[/color] [color=blue]Each[/color] drive [color=blue]As[/color] [color=#2b91af]DriveInfo[/color] [color=blue]In[/color] [color=#2b91af]DriveInfo[/color].GetDrives() [color=blue]If[/color] drive.IsReady [color=blue]Then[/color] [color=#2b91af]Console[/color].WriteLine(drive.Name & [color=#a31515]" "[/color] & drive.DriveType.ToString()) [color=blue]End[/color] [color=blue]If[/color] [color=blue]Next[/color] [color=blue]Dim[/color] dri [color=blue]As[/color] [color=blue]New[/color] [color=#2b91af]DriveInfo[/color]([color=#a31515]"C:\"[/color]) [color=blue]If[/color] dri.IsReady [color=blue]Then[/color] [color=#2b91af]Console[/color].WriteLine(dri.Name & [color=#a31515]" Is ready"[/color]) [color=blue]End[/color] [color=blue]If[/color] [color=#2b91af]Console[/color].ReadKey() [color=blue]End[/color] [color=blue]Sub[/color] [color=blue]End[/color] [color=blue]Module[/color] Quote
BlackBox Posted July 8, 2011 Posted July 8, 2011 Very neat alternative Jeff; I look forward to testing when I get back to work. :wink: Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.