Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to Access Shared Network drive File using C# code

Tags:

c#

asp.net

Manually I Have Mapped Network Drive Y:// To My System .Drive is having Manny Folders each Containg Single XMl File having Same as Folder .

Here I am Trying to Read Xml File From Network Location . But It is Giving Exception Directory Not Found . Below Code I am Using For that .

                 Fname = txtwbs.Text;           
                 DirectoryInfo objDir = new DirectoryInfo("Y:\\");    

                 \\Y:\\
                 protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
                 {
                 _xmlpath = objDir + "\\" + Fname + "\\" + Fname + ".xml";           
                 if (File.Exists(_xmlpath ))           
                  {          
                   reader(_xmlpath);          
                  } 
                 }

Here Fname is Folder Name Also Xml Name .Whatever User Will Enter the Name of File .

like image 504
kuldeep verma Avatar asked Nov 30 '22 14:11

kuldeep verma


2 Answers

Grab this code: http://pastebin.com/RZnydz4Z

Then on the Application_Start of your global.asax put this:

protected void Application_Start(object sender, EventArgs e) 
{
    Utilities.Network.NetworkDrive nd = new Utilities.Network.NetworkDrive();        
    nd.MapNetworkDrive(@"\\server\path", "Z:", "myuser", "mypwd");
}

Then just use like a normal network drive, like this:

File.ReadAllText(@"Z:\myfile.txt");
like image 139
boskop Avatar answered Dec 14 '22 23:12

boskop


You have this post tagged as both asp.net and asp-classic. From your code example, I'm guessing asp-classic doesn't apply.

If you are running in ASP.Net, the system wouldn't know about the mapped drive you've created. You should use the UNC path instead. If you aren't running the site with Windows Authentication, you'll also need to impersonate someone who has access to the share, as your anonymous user most likely will receive "Access Denied" errors.

Finally, I don't believe you need the DirectoryInfo call - use Path.Combine()

like image 30
Dave Simione Avatar answered Dec 14 '22 23:12

Dave Simione