How to Programmatically map a ftp dirve or folder as local disk in vb.net

Posted on 2006-05-12
Medium Priority
Last Modified: 2012-05-05
i want to map a ftp server folder as a local drive in mycomputer programmatically throught vb.net . i have seen a similar question but its answers refferd to a software (webdrive) but i want to do it programmatically in vb.net .
Question by:oceanripples
1 Comment

Accepted Solution

tsay earned 2000 total points
ID: 16665525
.NET does not provide a way to map drives. To do this you still needs to access the WinAPI or use the net Use command. I have created two functions which demonstrate simple mapping and disconnecting(unmapping) of network drives using VB.NET and the Win32API.

       Public Declare Function WNetAddConnection2 Lib "mpr.dll" Alias "WNetAddConnection2A" _
( ByRef lpNetResource As NETRESOURCE, ByVal lpPassword As String, _
ByVal lpUserName As String, ByVal dwFlags As Integer) As Integer

       Public Declare Function WNetCancelConnection2 Lib "mpr" Alias "WNetCancelConnection2A" _
(ByVal lpName As String, ByVal dwFlags As Integer, ByVal fForce As Integer) As Integer

          <StructLayout(LayoutKind.Sequential)> _
      Public Structure NETRESOURCE
            Public dwScope As Integer
            Public dwType As Integer
            Public dwDisplayType As Integer
            Public dwUsage As Integer
            Public lpLocalName As String
            Public lpRemoteName As String
            Public lpComment As String
            Public lpProvider As String
          End Structure

      Public Const ForceDisconnect As Integer = 1
      Public Const RESOURCETYPE_DISK As Long = &H1

      Public Function MapDrive(ByVal DriveLetter As String, ByVal UNCPath As String) As Boolean
            Dim nr As NETRESOURCE
            Dim strUsername As String
            Dim strPassword As String

            nr = New NETRESOURCE
            nr.lpRemoteName = UNCPath
            nr.lpLocalName = DriveLetter & ":"
            strUsername = Nothing '(add parameters to pass this if necessary)
            strPassword = Nothing '(add parameters to pass this if necessary)
            nr.dwType = RESOURCETYPE_DISK

            Dim result As Integer
            result = WNetAddConnection2(nr, strPassword, strUsername, 0)

            If result = 0 Then
                Return True
                Return False
            End If
          End Function

      Public Function UnMapDrive(ByVal DriveLetter As String) As Boolean
          Dim rc As Integer
            rc = WNetCancelConnection2(DriveLetter & ":", 0, ForceDisconnect)

                 If rc = 0 Then
                Return True
                Return False
            End If

          End Function

Featured Post

New feature and membership benefit!

New feature! Upgrade and increase expert visibility of your issues with Priority Questions.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Article by: jpaulino
XML Literals are a great way to handle XML files and the community doesn’t use it as much as it should.  An XML Literal is like a String (http://msdn.microsoft.com/en-us/library/system.string.aspx) Literal, only instead of starting and ending with w…
Creating an analog clock UserControl seems fairly straight forward.  It is, after all, essentially just a circle with several lines in it!  Two common approaches for rendering an analog clock typically involve either manually calculating points with…
This Micro Tutorial will teach you how to add a cinematic look to any film or video out there. There are very few simple steps that you will follow to do so. This will be demonstrated using Adobe Premiere Pro CS6.
With just a little bit of  SQL and VBA, many doors open to cool things like synchronize a list box to display data relevant to other information on a form.  If you have never written code or looked at an SQL statement before, no problem! ...  give i…
Suggested Courses
Course of the Month16 days, 16 hours left to enroll

862 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question