|
Вопрос # 2 023/ вопрос открыт / |
|
Здравствуйте, эксперты! Как можно узнать у системы, была ли открыта та или иная папка?
 |
Вопрос задала: Maria (статус: Посетитель)
Вопрос отправлен: 27 октября 2008, 12:24
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: Feniks
Здравствуйте, Maria!
Если я вас правильно понял, то вам надо прочитать атрибут "Дата последнего изменения файла". Механизм получения/чтения атрибутов файлов такой же, как у папок. Используйте для этого функции FindFirstFile, FileTimeToLocalFileTime, FileTimeToDosDateTime и FileDateToDateTime:
procedure TForm1.Button1Click(Sender: TObject);
var
FileHandle: THandle;
LocalFileTime: TFileTime;
DosFileTime: DWORD;
LastAccessedTime: TDateTime;
FindData: TWin32FindData;
begin
FileHandle := FindFirstFile('AnyFile.FIL', FindData);
if FileHandle <> INVALID_HANDLE_VALUE then
begin
Windows.FindClose(Handle);
FileTimeToLocalFileTime(FindData.ftLastWriteTime, LocalFileTime);
FileTimeToDosDateTime(LocalFileTime,
LongRec(DosFileTime).Hi, LongRec(DosFileTime).Lo);
LastAccessedTime := FileDateToDateTime(DosFileTime);
Label1.Caption := DateTimeToStr(LastAccessedTime);
end;
end;
P.S. Желаю удачи.
 |
Ответ отправил: Feniks (статус: Бакалавр)
Время отправки: 27 октября 2008, 18:54
Оценка за ответ: 4
|
Мини-форум вопроса
Всего сообщений: 4; последнее сообщение — 28 октября 2008, 14:53; участников в обсуждении: 2.
|
Вадим К (статус: Академик), 27 октября 2008, 13:31 [#1]:
то есть, открывал ли физически пользователь данную папку или что? вопрос крайне непонятен.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Maria (статус: Посетитель), 28 октября 2008, 12:29 [#2]:
Да, именно так! Чтобы поставить запрет на вхождение в папку в локальной сети, я хочу сделать программу, выводящую окно с запросом пароля, в том случае, если был сделан двойной щелчок на папке или выбор в контекстном меню команды "Открыть".Такое возможно в принципе?
|
|
Вадим К (статус: Академик), 28 октября 2008, 12:51 [#3]:
По локальной сети? под WinXP и старше это невозможно - ставить пароль на конкретную папку. С другой стороны - это и не сделают - это идеологически неверно. Наверно Вас стоит ознакомиться с правами доступа/Безопасностью и научиться выставлять права на каталоги. Но это уже другая тема, это уже не Делфи.
Научившись красиво выставлять права на каталоги можно творить чудеса и плохие, неправильные мысли "выставить пароль на папку" сразу пропадут.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Maria (статус: Посетитель), 28 октября 2008, 14:53 [#4]:
Хорошо, постараюсь разобраться! Спасибо!
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|