| 
| 
 | Вопрос # 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]:Хорошо, постараюсь разобраться! Спасибо! |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |