файл fopen из сетевого расположения Windows - PullRequest
1 голос
/ 22 июля 2010

Я могу открывать файлы со смонтированного сетевого диска, но не с несмонтированного, например, \\ mycomp \ folder2 \ hi.bmp

Обойти это можно?

Ответы [ 2 ]

2 голосов
/ 22 июля 2010

У меня работает следующий фрагмент:

char buffer[1000];    
FILE* file;
size_t bytesRead;

file = fopen("\\\\server\\share\\test.dat", "rb");  
if (file != NULL)
{
    bytesRead = fread(buffer, sizeof(char), sizeof(buffer), file);
    fclose(file);
}

Также обратите внимание на этот отрывок из открытых документов (MSDN) :

...

fopen будет принимать пути, допустимые в файловой системе на момент выполнения; Пути UNC и пути, связанные с подключенными сетевыми дисками, принимаются fopen, пока система, выполняющая код, имеет доступ к общему или подключенному сетевому диску во время выполнения .При создании путей для fopen следует соблюдать особую осторожность, чтобы не делать предположений о доступных дисках, путях или общих сетевых ресурсах в среде выполнения.
...

Вы такжеНеобходимо учитывать, что учетная запись, под которой вы запускаете свою программу, должна иметь соответствующие права доступа к файлу.Когда вы подключаете общий ресурс как сетевой диск, возможно, вы используете разные учетные данные для подключения.Это может привести к сбою fopen.

0 голосов
/ 22 июля 2010
fopen("\\\\192.168.1.4\\SharedFolder\\Configfile.txt","r"); 

или

 fopen("\\\\ServerName\\SharedFolder\\Configfile.txt","r"); 
...