2013-04-15 17 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(); 

Pytanie: Wygląda na to, że ofstream.open nie obsługuje otwierania pliku na dysku sieciowym. Czy istnieje prosty sposób rozwiązania tego problemu?Jak uzyskać dostęp do pliku sieciowego?

+5

Spróbuj 'std :: cout << std :: strerror (errno)' i zobacz, co drukuje ([odnośnik] (http://en.cppreference.com/w/cpp/string/byte/strerror)) . –

+0

Brak takiego pliku lub katalogu – q0987

Odpowiedz

3

Spróbuj tego:

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

Próbowałem to otworzyć plik na wspólnym serwerze, wyprowadza

file is open 

więc powinien działać.

Dysk Z nie jest w rzeczywistości fizycznym napędem, jest mapowaniem do rzeczywistego fizycznego napędu na serwerze.

+1

Ogólnie zmapowane dyski są dla użytkownika, co mogło być problemem. –

+0

@JesseDobre tak. Tak myślę. dzięki! – taocp

Powiązane problemy