Click here to Skip to main content
15,907,679 members
Articles / Programming Languages / C#
Article

Map Network Drive (API)

Rate me:
Please Sign up or sign in to vote.
4.64/5 (65 votes)
18 May 2004CC (ASA 2.5)1 min read 630.3K   21.2K   139   117
Class for interfacing to the "map network drive" windows interface

Image - netdrive0015.jpg

What does it do?

This is a class for interfacing with windows map network drive API's.

Introduction to the class...

  • Getting started

    Add the class file "cNetworkDrives0015.cs" to your project / solution.
    Add the "using" definition to your form, etc.
    C#
    using aejw.Network;
  • Example (Mapping a network drive)

    C#
    NetworkDrive oNetDrive = new aejw.Network.NetworkDrive();
    try{
       oNetDrive.LocalDrive = "m:";
       oNetDrive.ShareName = "\\ComputerName\Share"
       oNetDrive.MapDrive();
    }catch(Exception err){
       MessageBox.Show(this,"Error: "+err.Message);
    }
    oNetDrive = null;
    
  • Example (Unmapping a network drive)

    C#
    NetworkDrive oNetDrive = new aejw.Network.NetworkDrive();
    try{
       oNetDrive.LocalDrive = "m:";
       oNetDrive.UnMapDrive();
    }catch(Exception err){
       MessageBox.Show(this,"Error: "+err.Message);
    }
    oNetDrive = null;
    

Username and Password functions...

The following examples require the object / class to be declared.
C#
cNetworkDrive oNetDrive = new cNetworkDrive();
  • Mapping a network drive

    • C#
      //Map drive with current user credentials
      oNetDrive.LocalDrive = "m:";
      oNetDrive.ShareName = "\\ComputerName\Share1"
      oNetDrive.MapDrive();
    • C#
      //Map drive with specified user credentials
      oNetDrive.LocalDrive = "m:";
      oNetDrive.ShareName = "\\ComputerName\Share1"
      oNetDrive.MapDrive("Bob_Username","Bob_Password");
    • C#
      //Map drive with and prompt user for credentials
      oNetDrive.LocalDrive = "m:";
      oNetDrive.ShareName = "\\ComputerName\Share1"
      oNetDrive.PromptForCredentials = true;
      oNetDrive.MapDrive();
    • C#
      //Map drive using a persistent connection
      oNetDrive.LocalDrive = "m:";
      oNetDrive.Persistent = true;
      oNetDrive.SaveCredentials = true;
      oNetDrive.ShareName = "\\ComputerName\Share1"
      oNetDrive.MapDrive("Bob_Username","Bob_Password");
  • Unmapping a network drive

    • C#
      //Unmap a network connection
      oNetDrive.LocalDrive = "m:";
      oNetDrive.ShareName = "\\ComputerName\Share1"
      oNetDrive.UnMapDrive();
    • C#
      //Unmap a network connection ignoring network related errors
      oNetDrive.LocalDrive = "m:";
      oNetDrive.Force = true;
      oNetDrive.ShareName = "\\ComputerName\Share1"
      oNetDrive.UnMapDrive();
  • Other functions

    • C#
      //Display windows connection dialog
      oNetDrive.ShowConnectDialog(this);
      //Display windows disconnection dialog
      oNetDrive.ShowDisconnectDialog(this);
    • C#
      //Restore all persistent connections
      oNetDrive.RestoreDrives();

History

  • 14th May 2004 - build0015
    • LocalDrive and ShareName are now properties.
    • Dialog functions now use a form object instead of a window handle.
    • Renaming scheme for public functions and properties, MapNetworkDrive(...) is now MapDrive(...), etc...
    • Added Persistant option, Used for reconnecting a drive at logon.
    • Added SaveCredentials option, Allows windows to remember the user credentials when reconnecting a persistent connection.
    • Added Force option, for MapDrive calls, if a drive is connected it will disconnect that drive then reconnect to the new share.
    • Added PromptForCredintals option, for MapDrive calls, windows will ask for a username and password to use with the connection.
    • Added RestoreDrives function that restores persistent connections.
  • 30th April 2004 - build0012
    • Code refinements and tidying, added comments to the class.
  • 27th April 2004 - build0011
    • Adjusted declare tags, tidied class and article
  • 26th April 2004 - build0010
    • First version posted online

License

This article, along with any associated source code and files, is licensed under The Creative Commons Attribution-ShareAlike 2.5 License


Written By
Web Developer
New Zealand New Zealand
C#, VB.net (Web and forms), SQL Server, MySQL, ASP, Win32 API, ...
Site: aejw.com

Comments and Discussions

 
QuestionNetwork Map Question Pin
Member 159058231-Feb-23 3:51
Member 159058231-Feb-23 3:51 
QuestionConnecting to web-server Pin
Member 80103946-Sep-14 8:55
Member 80103946-Sep-14 8:55 
NewsI mentioned you! Pin
Antonio Petricca3-Oct-13 23:37
Antonio Petricca3-Oct-13 23:37 
QuestionHow Do I determine whether the specified drive is currently connected or not Pin
Prashant Bangaluru8-May-13 3:29
Prashant Bangaluru8-May-13 3:29 
Questionpublished version? Pin
fanff30001-Jan-13 18:05
fanff30001-Jan-13 18:05 
QuestionYour help needed Pin
Steve Ween2-Nov-12 13:17
Steve Ween2-Nov-12 13:17 
Questionaejw network Pin
tari_mrv1-Oct-12 2:18
tari_mrv1-Oct-12 2:18 
QuestionAsking for credentials even if I supply them in Windows 7. Pin
Mike Miller9-Aug-12 12:27
Mike Miller9-Aug-12 12:27 
QuestionLatest version Pin
jeremycafe111129-Apr-12 3:09
jeremycafe111129-Apr-12 3:09 
QuestionUnused drive letter Pin
Ross Chang31-Oct-11 18:47
Ross Chang31-Oct-11 18:47 
QuestionSite Pin
nenadvuckovic24-Oct-11 3:48
nenadvuckovic24-Oct-11 3:48 
Questionfor vb6 Pin
afdoal18-Sep-11 1:30
afdoal18-Sep-11 1:30 
Questiondoes not work under win7 limited account Pin
xRayen13-Sep-11 4:13
xRayen13-Sep-11 4:13 
QuestionError in using Map network drive API Pin
k.parvez31-Mar-11 21:14
k.parvez31-Mar-11 21:14 
GeneralMy vote of 5 Pin
Julijan Sribar17-Jan-11 23:02
Julijan Sribar17-Jan-11 23:02 
GeneralMy vote of 5 Pin
emirucan10-Jan-11 0:15
emirucan10-Jan-11 0:15 
GeneralThank you!!! Pin
Guillermo Toro8-Dec-10 13:17
Guillermo Toro8-Dec-10 13:17 
GeneralLast version Pin
Member 60274910-Feb-10 6:11
Member 60274910-Feb-10 6:11 
GeneralRe: Last version Pin
FaxedHead27-Feb-10 21:45
FaxedHead27-Feb-10 21:45 
GeneralRe: Last version Pin
Member 6027491-Mar-10 7:40
Member 6027491-Mar-10 7:40 
GeneralNew Version 0028 Pin
Tim Gladney5-Feb-10 3:42
Tim Gladney5-Feb-10 3:42 
Generalthankssssssss Pin
Member 28813132-Feb-10 0:01
Member 28813132-Feb-10 0:01 
QuestionHow do you expand a mapped drive? Pin
SparkyNZ26-Nov-09 8:30
SparkyNZ26-Nov-09 8:30 
GeneralThis is an old version Pin
Yvan Rodrigues4-Nov-09 15:33
professionalYvan Rodrigues4-Nov-09 15:33 
GeneralLPT bug Pin
dmageiras11-Jun-09 1:09
dmageiras11-Jun-09 1:09 
Hi!
Great article!
Theres a tiny bug in LPT1 mapping. If you try to map LPT1: your code converts it to the L drive letter...

A quick and dirty fix is the following:

public string LocalDrive
{
    get { return (ls_Drive); }
    set
    {
        if (value.ToUpper() == "LPT1:" || value.ToUpper() == "LPT1")
        {
            ls_Drive = "LPT1:";
        }
        else if (value.Length >= 1)
        {
            ls_Drive = value.Substring(0, 1) + ":";
        }
        else
        {
            ls_Drive = "";
        }
    }
}


I guess there's a better way but it works for me.

Greetings,

DM

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.