![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
контролировать конкретный файл [D7, WinXP]
mad_prog © (2005-08-27 15:20:00)Мастере как можно контролировать конкретный файл и не давать ему
доступ другим программам ?
Anatoly Podgoretsky (2005-08-29 13:40:00) [1]Естественно, там нет таких понятий, ты смело можешь грохнуть любой окрытый для записи файл. Там прав то с гулькин нос, только разрешение на чтение, запись, исполнение и то весьма ограничено. Есть права - можешь хоть всю систему стирать.
dmitry501 (2005-08-29 11:06:00) [2]Небольшое замечание. Если файл находится на сетевом диске на linux, то так доступ ограничить не удасться.
Leonid Troyanovsky (2005-08-29 10:44:00) [3]
> Пантелеев Иван (29.08.05 10:10) [5]
> А можно такие же ограничения ставить на папки с подкаталогами?
В смысле, чтобы dwShareMode распространилось на
содержимое папки? Тогда - нет.
Вот операции, которые возможны с хендлом директории:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/obtaining_a_handle_to_a_directory.asp
--
Regards, LVT.
Пантелеев Иван (2005-08-29 10:10:00) [4]А можно такие же ограничения ставить на папки с подкаталогами?
Anatoly Podgoretsky (2005-08-29 09:56:00) [5]Big Joe © (27.08.05 16:09) [2]
// вешаем ограничение. Теперь никто не будет трогать файл
fs:=TFileStream.Create('D:\gigi.txt', fmOpenRead, fmShareDenyNone);
Ты наоборот снял все ограничения.
Надо fmShareExclusive
Leonid Troyanovsky (2005-08-29 09:51:00) [6]
> Big Joe © (27.08.05 16:09) [2]
> // вешаем ограничение. Теперь никто не будет трогать файл
> fs:=TFileStream.Create('D:\gigi.txt', fmOpenRead, fmShareDenyNone);
Share Deny None - не препятствовать совместному использованию.
--
Regards, LVT.
Big Joe (2005-08-27 16:09:00) [7]var
Form1: TForm1;
// через этот поток мы будем работать с файлом.
// Для нескольких файлов — несколько потоков.
fs: TFileStream;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
// вешаем ограничение. Теперь никто не будет трогать файл
fs:=TFileStream.Create('D:\gigi.txt', fmOpenRead, fmShareDenyNone);
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
//Снимаем ограничение.
fs.Free;
end;
Anatoly Podgoretsky (2005-08-27 15:37:00) [8]Для этого его надо открыть в монопольном режиме.