Я могу открыть файлы от смонтированного сетевого диска, но не от размонтированного, например, \\mycomp\folder2\hi.bmp
Какая-либо работа вокруг для этого?
Следующий фрагмент работает для меня:
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);
}
Также обратите внимание на этот отрывок из fopen docs (MSDN):
...
fopen будет принимать пути, которые являются действительными в файловой системе на момент выполнения; UNC-пути и пути включающие сопоставленные сетевые диски принимаются fopen до тех пор, пока если система, выполняющая код, имеет доступ к ресурсу или сопоставленному сетевому диску во время выполнения. Особое внимание необходимо проявлять особую осторожность при построении путей для fopen, чтобы избежать предположений о доступных дисках, путях или сетевых ресурсов в среде выполнения окружение.
...
Также необходимо учитывать, что учетная запись, под которой вы запускаете программу, должна иметь соответствующие права доступа к файлу. Когда вы монтируете общий ресурс как сетевой диск, возможно, вы используете другие учетные данные для подключения. Это может привести к ошибке fopen
.
fopen("\\\\192.168.1.4\\SharedFolder\\Configfile.txt","r");
или
fopen("\\\\ServerName\\SharedFolder\\Configfile.txt","r");