Здравствуйте, Mitallic, Вы писали:
M>Здравствуйте.
M>Я работаю с файлами:
M>M> FILE *file = fopen(FileName,"r+b");
M> ...
M> fclose(file);
M>
M>Мне необходимо открыть файл чтение + запись.
M>Но вот проблемка: если файл — read only — то он не открывается.
M>Подскажите, пожалуйста, как ее побороть.
M>Зарание благодарен.
Код работающий в C++Builder, думаю разберешься.
Все это находится в какой-то из этих библиотек:
#include "fstream.h"
#include "sys\stat.h"
#include "dos.h"
#include "io.h"
#include <stdio.h>
if ((F = fopen("Test.zzz", "r+t")) == NULL)
{
F = fopen("Test.zzz", "a+t");
ShowMessage ("Файл не удалось открыть и он был создан");
}
//-- Добавляет к атрибутам файла атрибут "невидимый" --
attrib = _rtl_chmod("Test.zzz", 0);
_rtl_chmod("Test.zzz", 1, attrib | FA_HIDDEN);
//-- Установка атрибута файла "невидимый", заданного строкой SFile -------------
attrib = _rtl_chmod("Test.zzz", 1, FA_HIDDEN);
//-- Отображает в окне Memo1 атрибуты файла SFile -------------
attrib = _rtl_chmod("Test.zzz", 0);
if (attrib == -1)
{
Memo1->Lines->Add("SrP<LB RTXDx " + IntToStr(errno));
return;
}
SFile1 = SFile;
if (attrib & FA_RDONLY)
Memo1->Lines->Add(SFile1 + " — файл только для чтения");
if (attrib & FA_SYSTEM)
Memo1->Lines->Add(SFile1 + " — системный файл");
if (attrib & FA_HIDDEN)
Memo1->Lines->Add(SFile1 + " — невидимый файл");
if (attrib & FA_DIREC)
Memo1->Lines->Add(SFile1 + " — каталог");
if (attrib & FA_ARCH)
Memo1->Lines->Add(SFile1 + " — архивный файл");