|
Вопрос # 156/ вопрос открыт / |
|
Здравствуйте. Есть приложение и некий файл Test.dat. Приложение периодически осуществляет чтение/запись в этот файл. Подскажите пожалуйста, как сделать так, чтобы пока приложение запущено файл Test.dat нельзя было скопировать проводником или Total commander'ом
 |
Вопрос задал: Романов М.Ю. (статус: Посетитель)
Вопрос отправлен: 11 ноября 2006, 15:00
Состояние вопроса: открыт, ответов: 2.
|
Ответ #1. Отвечает эксперт: Alex Van Glukhman
Здравствуйте, Романов М.Ю.!
var
Form1: TForm1;
// через этот поток мы будем работать с файлом.
// Для нескольких файлов — несколько потоков.
fs: TFileStream;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
//при открытии вешаем ограничение. Теперь никто
//не сможет трогать файл
fs:=TFileStream.Create('D:\myfile.txt', fmOpenRead, fmShareDenyNone);
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
//Снимаем ограничение.
fs.Free;
end;
Удачи
 |
Ответ отправил: Alex Van Glukhman (статус: 7-ой класс)
Время отправки: 11 ноября 2006, 16:38
|
Ответ #2. Отвечает эксперт: Елизаров Алексей Дмитриевич
Здравствуйте, Романов М.Ю.!
Попробуйте использовать права для доступа к файлам.
Их надо объявлять при инициализации переменной типа TFileStream.
Вот они:
fmShareCompat-всем приложениям разрешено работать с данным файлом.
fmShareExlusive-никто, кроме Вашего приложения не может использовать файл.
fmShareDenyWrite-другие приложения могут открыть файл только для чтения.
fmShareDenyRead-другие приложения могут открыть файл только для записи.
fmShareDenyNone-не мешать другим приложениям работать с файлом.
Мини-форум вопроса
Мини-форум пуст.
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|