• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 9069
  • Last Modified:

How to map a network drive in vb .net

I wrote the below code to map a network drive to another server:

 Try
            Dim storefile As System.IO.Directory
            Dim directory As String
            Dim files As String()
            Dim File As String

            files = storefile.GetFiles("\\" & DropDownList1.SelectedItem.Value & "\Y$\Checkpoints", "*")

            For Each File In files
                Label21.Text += (File & "<BR>")
            Next

        Catch ex As System.Exception
            Label9.Text = ex.Message
        End Try

The error message I'm getting Access to the path "\\YKCM1S1\Y$\Checkpoints" is denied. The path exist on the other server. How can I get around this? Thanks
0
redouard
Asked:
redouard
1 Solution
 
weareitCommented:
Is Y$ an actual share on the server?

It seems as if you are trying to map to a network drive, if so then you cannot do this.  Y$ signifies an administrative share or a hidden share of a local drive on the target server.

-saige-
0
 
redouardAuthor Commented:
Okay, now I removed the Y$ and nothing is happening?
0
 
weareitCommented:
On the target server what is the share that you are attempting to attatch to?

-saige-
0
 
Bob LearnedCommented:
Here is a class that will let you map to a network share:
' Add a COM reference to Windows Script Host Object Model.
 
Imports IWshRuntimeLibrary
Imports System.Runtime.InteropServices
 
Public Class NetworkDriveMapper
 
  Public Shared Sub MapDrive(ByVal driveLetter As String, _
   ByVal networkPath As String, ByVal isPersistent As Boolean)
 
    ' Create a new shell object.
    Dim networkShell As New WshNetwork
 
    Try
 
      ' Disconnect the drive first, forcing a permanent change.
      DisconnectDrive(driveLetter, True, True)
 
      ' Map the drive to the path.
      networkShell.MapNetworkDrive(driveLetter, networkPath, Convert.ToBoolean(isPersistent))
 
    Finally
 
      If Not networkShell Is Nothing Then
        Marshal.ReleaseComObject(networkShell)
 
        networkShell = Nothing
 
      End If
 
    End Try
 
  End Sub
 
  Public Shared Sub DisconnectDrive(ByVal driveLetter As String, _
    ByVal willForce As Boolean, ByVal isPersistent As Boolean)
 
    ' Create a new shell object.
    Dim networkShell As New WshNetwork
 
    If IO.Directory.Exists(driveLetter) Then
 
      Try
 
        networkShell.RemoveNetworkDrive(driveLetter, Convert.ToBoolean(willForce), _
            Convert.ToBoolean(isPersistent))
 
      Finally
 
        If Not networkShell Is Nothing Then
          Marshal.ReleaseComObject(networkShell)
 
          networkShell = Nothing
 
        End If
 
      End Try
 
    End If
 
  End Sub
 
End Class

Open in new window

0
 
Computer101Commented:
Forced accept.

Computer101
EE Admin
0

Featured Post

Nothing ever in the clear!

This technical paper will help you implement VMware’s VM encryption as well as implement Veeam encryption which together will achieve the nothing ever in the clear goal. If a bad guy steals VMs, backups or traffic they get nothing.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now