2013-04-15 20 views
9
using namespace std; 

ofstream myfile; 
//myfile.open ("Z:\\ABC.TXT");     // fails Z: is a network drive 
//myfile.open("C:\\Temp\\ABC.TXT");   // OK 
//myfile.open("Z:\\NETWORK\\02-010E.CHS");  // fails Z:\Network is a network folder 

if (myfile.is_open()) 
    cout << "file is open" << endl; 
else 
    cout << "file fails to open" << endl; 

myfile.close(); 

Domanda: Sembra che ofstream.open non supporti l'apertura di un file su un'unità di rete. C'è un modo semplice per risolvere questo problema?Come accedere al file di rete?

+5

Provare 'std :: cout << std :: strerror (errno)' e vedere cosa viene stampato ([riferimento] (http://en.cppreference.com/w/cpp/string/byte/strerror)) . –

+0

Nessun file o directory di questo tipo – q0987

risposta

3

Prova questo:

using namespace std; 

    ofstream myfile; 
    myfile.open("\\\\servername\\filepath\\filename"); 
       //^^should follow this format, servername is not Z drive name 

    if (myfile.is_open()) 
    cout << "file is open" << endl; 
else 
    cout << "file fails to open" << endl; 

myfile.close(); 

ho provato questo per aprire un file su un server condiviso, emette

file is open 

così dovrebbe funzionare.

L'unità Z non è in realtà un'unità fisica reale, è solo una mappatura del disco fisico reale sul server.

+1

Generalmente le unità mappate sono per utente, che potrebbe essere stato il problema. –

+0

@JesseGood sì. Credo di si. Grazie! – taocp

Problemi correlati