2016-08-08 6 views
-2

Ich habe Probleme beim Lesen von Dateien aus Windows-Netzwerkfreigaben. Ich habe eine Netzwerkfreigabe mein Code sieht ungefähr so ​​aus wie S: montiert so:std :: fstream auf Windows-Netzwerk teilen

std::fstream in; 
in.open("S:/adir/new folder/afile.txt", std::fstream::in); 
if (in.fail()) 
    throw "failed"; 
... //use in for reading 

Als ich dieses Programm ausführen, es wirft „nicht bestanden“. Es scheitert immer, bis ich den Windows Explorer zu diesem Verzeichnis navigiere, danach funktioniert es.

Wie kann ich dieses Problem beheben?

+0

Sie müssen 'in.open ("\\\\ Server \\ \\ Datei freigegeben", std :: fstream :: in);' – DimChtz

+0

Der Antrieb ist wahrscheinlich nicht fest montiert und angebracht ist, durch Navigator Explorer zu ihm. – Peter

+0

@Peter gibt es eine Möglichkeit, das zu überprüfen, es könnte etwas fällig sein IT-Installation – Zaiborg

Antwort

0

Um eine Datei zu öffnen, sollte das System, das den Code ausführt, zum Zeitpunkt der Ausführung Zugriff auf die Freigabe oder das zugeordnete Netzlaufwerk haben.

Die Funktion WNetAddConnection2 stellt eine Verbindung zu einer Netzwerkressource her und kann ein lokales Gerät an die Netzwerkressource umleiten.

DWORD dwRetVal; 
NETRESOURCE nr; 
DWORD dwFlags; 

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

nr.dwType = RESOURCETYPE_ANY; 
nr.lpLocalName = <name of a local device>; 
nr.lpRemoteName = <network resource to connect to>; 
nr.lpProvider = NULL; 

dwFlags = CONNECT_UPDATE_PROFILE; 

// Call the WNetAddConnection2 function to assign 
// a drive letter to the share. 
dwRetVal = WNetAddConnection2(&nr, 
           <password to be used>, 
           <a user name>, 
           dwFlags); 

if (dwRetVal == NO_ERROR) 
    // Success ... 
    // Now you can open the file 
else 
    // Failed ... 
+0

für einige Freigaben sind die 'username' und' password' die Windows-Anmeldeinformationen, für andere seine etwas anderes. Wie bekomme ich diese Informationen (und warum, weil Windows Explorer diese Informationen bereits kennt)? – Zaiborg

Verwandte Themen