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

Câu hỏi: Dường như ofstream.open không hỗ trợ để mở tệp trên ổ đĩa mạng. Có cách nào đơn giản để giải quyết vấn đề này không?Cách truy cập tệp mạng?

+5

Hãy thử 'std :: cout << std :: strerror (errno)' và xem những gì nó in ([tham khảo] (http://en.cppreference.com/w/cpp/string/byte/strerror)) . –

+0

Không có tệp hoặc thư mục nào như vậy – q0987

Trả lời

3

Hãy thử điều này:

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

tôi đã cố gắng này để mở một tập tin trên một máy chủ chia sẻ, nó sẽ tạo ra

file is open 

vì vậy nó phải làm việc.

Ổ đĩa Z thực sự không phải là ổ đĩa vật lý thực, nó chỉ là ánh xạ tới ổ đĩa vật lý thực trên máy chủ.

+1

Nói chung, các ổ đĩa được ánh xạ là cho mỗi người dùng, điều này có thể là vấn đề. –

+0

@ JesseGood yes. Tôi đoán vậy. cảm ơn! – taocp

Các vấn đề liên quan