简体   繁体   中英

WNetAddConnection2 Remote Access and read the directory files in c#

I have to read a file "abc.txt" content from a remote server on intranet. I used WNetAddConnection2 to do that. Used this stackoverflow link and this link too . Now I made the connection as success. When I try to use the remote connection it still points to my C Drive. I want the connection to use the remote one I just made and get files from there.

var oNC = new System.Net.NetworkCredential()
                      {
                          Domain = "192.1.x.y",
                          UserName = "localhost\\myremoteadminusername",
                          Password = "myremotepassword"
                      };
        using (new NetworkConnection(@"\\" + "192.1.x.y", oNC))
        {
            String[] sfolderNames = Directory.GetDirectories(oNC.Domain + "\\Logs");
//Get Exception in above line bcoz it somehow points to my local C:\...\\bin\Debug\192.1.x.y\Logs
 //instead of remote 192.1.x.y\Logs

            foreach (String sFolderName in sfolderNames) 
            {
                string[] sarrZipFiles = Directory.GetFiles(sFolderName, "*.txt"); 
                foreach (String sFile in sarrZipFiles) 
                { 

                }
            } 
        }

What am I doing wrong? Let me know if you need anything else.

This code is vc++, it works for getting access to remote resources. Might help you

#include "stdafx.h"
#ifndef UNICODE
#define UNICODE
#endif
#pragma comment(lib, "mpr.lib")

#include <windows.h>
#include <tchar.h>
#include <stdio.h>
#include <Winnetwk.h>
#include<iostream>
#include<string>

// Need to link with Netapi32.lib and Mpr.lib
int _tmain(int argc, _TCHAR* argv[]){  
DWORD dwRetVal;    
NETRESOURCE nr;
DWORD dwFlags;  
DWORD cancelRetVal;

// Zero out the NETRESOURCE struct
memset(&nr, 0, sizeof(NETRESOURCE));

// Assign our values to the NETRESOURCE structure.   
nr.dwType = RESOURCETYPE_ANY;

nr.dwScope = RESOURCE_GLOBALNET;
nr.lpLocalName =NULL;

nr.lpRemoteName = L"\\\\x.x.x.x\\folder";

nr.lpProvider = NULL;

// Assign a value to the connection options
dwFlags = CONNECT_UPDATE_PROFILE;   

cancelRetVal = WNetCancelConnection2(L"\\\\x.x.x.x\\fodler", 0, true);

//usage WNetAddConnection2("location", L"password", L"domain\\username", 0);
dwRetVal = WNetAddConnection2(&nr, L"password", L"domain\\username", 0);

if (dwRetVal == NO_ERROR)
    wprintf(L"Connection added to %s\n", nr.lpRemoteName);
else
    wprintf(L"WNetAddConnection2 failed with error: %u\n", dwRetVal);

std::string s;
std::getline(std::cin, s);
exit(1);

}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM