2016-06-01 9 views
1

Ich muss eine Datei "abc.txt" Inhalt von einem Remote-Server im Intranet lesen. Ich habe WNetAddConnection2 dazu benutzt. Used this stackoverflow link und this link too. Jetzt habe ich die Verbindung zum Erfolg gemacht. Wenn ich versuche, die Fernverbindung zu benutzen, zeigt sie immer noch auf mein C-Laufwerk. Ich möchte, dass die Verbindung die Remote-Verbindung verwendet, die ich gerade erstellt habe, und Dateien von dort abrufen.WNetAddConnection2 Remote Access und lesen Sie die Verzeichnisdateien in C#

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) 
       { 

       } 
      } 
     } 

Was mache ich falsch? Lass es mich wissen, wenn du etwas anderes brauchst.

Antwort

0
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); 

}