Wie greife ich programmgesteuert auf eine Dateifreigabe zu [duplizieren]

8

Ich habe eine Windows Forms-App, die auf einem Computer ausgeführt wird, der sich nicht in einer Domäne befindet, der eine Datei vom lokalen Dateisystem in einen UNC-Pfad verschieben muss. Ich habe einen Benutzernamen und ein Passwort für diesen Pfad. Ich frage mich, gibt es eine Möglichkeit, dies direkt zu tun, ohne den Befehl net.exe auszuführen?

Idealerweise müsste ich kein Laufwerk zuordnen.

    
Mykroft 17.09.2009, 21:18
quelle

4 Antworten

4

Die akzeptierte Antwort zu dieser Frage hier scheint es, als wäre es wert, sich zu informieren; Es schlägt vor, die Win32-API-Funktion WNetUseConnection zu verwenden.

Von MSDN:

  

Die Funktion WNetUseConnection macht a   Verbindung zu einer Netzwerkressource. Das   Funktion kann ein lokales Gerät umleiten   zu einer Netzwerkressource.

Was zu erreichen scheint, was Sie suchen, ohne net.exe zu erwähnen. Hilft das?

    
Donut 17.09.2009, 21:25
quelle
11

Sie können dazu WNetAddConnection verwenden. Du musst pInvozieren. Der folgende Code funktionierte für mich, nachdem ich die pInvoke-Deklarationen eingerichtet hatte. Der zweite Codeblock (unten) enthält die pInvoke-Deklarationen - einfach in eine Klasse einfügen.

%Vor%

Sie müssen den folgenden unterstützenden Code in eine Klasse einfügen (aus pInvoke.Net). Stellen Sie sicher, dass Sie Ihrem Code eine usting-Anweisung hinzufügen:

%Vor% %Vor%     
JMarsch 17.09.2009 23:24
quelle
1

Ich denke, Sie müssen ein Laufwerk zuordnen. Ich habe noch keinen Weg gefunden. Siehe jedoch diesen Beitrag:

Asp.net Zugriff auf die Netzwerkfreigabe

Die Antwort von jemand anderem wurde akzeptiert, aber ich habe Code in einer anderen Antwort zur Vereinfachung eines Netzlaufwerks gepostet.

    
David 17.09.2009 21:20
quelle
0

Sehen Sie sich diesen Beitrag an. Es verwendet P / Invoke, um Win32 API LogonUser () und Freunde aufzurufen. Es gibt auch einen Beispielcode.

    
Frank Bollack 17.09.2009 21:26
quelle

Tags und Links