Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 11.06.2020
Сообщений: 5

Как изъять временную метку последнего открытия файла?

11.06.2020, 18:32. Показов 896. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, начал писать программу, определяющую время создания\изменения\открытия файла, и столкнулся с проблемой: winbase.h позволяет определить дату создания, изменения и доступа к файлу, но последняя не соответствует таковой в "ПКМ>Свойства файла", ибо в свойствах отображается несистемный доступ к файлу, а в написанной программе - любое взаимодействие. Как получить виндосовскую дату открытия, отображаемую в свойствах файла? Прилагаю свой код:


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <stdio.h>
#include <windows.h>
#include <winbase.h>
#include <conio.h>
 
using namespace std;
 
int main()
{
 
  WIN32_FILE_ATTRIBUTE_DATA ad;
 
  if(GetFileAttributesEx("D:\\файл.txt", GetFileExInfoStandard, &ad)==TRUE)
  {
    char strwrite[32], strcreate[32], straccess[32];
    FILETIME ftWrite;
    FILETIME ftAccess;
    FILETIME ftCreation;
 
    SYSTEMTIME stUTC, stLocal;
    ftWrite = ad.ftLastWriteTime;
    ftAccess = ad.ftLastAccessTime;
    ftCreation = ad.ftCreationTime;
 
    FileTimeToSystemTime(&ftCreation, &stUTC);
    SystemTimeToTzSpecificLocalTime(NULL, &stUTC, &stLocal);
 
    sprintf(strcreation, "%02d/%02d/%d  %02d:%02d:%02d",
      stLocal.wDay, stLocal.wMonth, stLocal.wYear,
      stLocal.wHour, stLocal.wMinute, stLocal.wSecond);
    printf(strcreation);printf(" - Creation Time\n");
 
 
    FileTimeToSystemTime(&ftWrite, &stUTC);
    SystemTimeToTzSpecificLocalTime(NULL, &stUTC, &stLocal);
 
 
    sprintf(strwrite, "%02d/%02d/%d  %02d:%02d:%02d",
      stLocal.wDay, stLocal.wMonth, stLocal.wYear,
      stLocal.wHour, stLocal.wMinute, stLocal.wSecond);
    printf(strwrite);printf(" - Write Time\n");
 
 
    FileTimeToSystemTime(&ftAccess, &stUTC);
    SystemTimeToTzSpecificLocalTime(NULL, &stUTC, &stLocal);
 
 
    sprintf(straccess, "%02d/%02d/%d  %02d:%02d:%02d",
      stLocal.wDay, stLocal.wMonth, stLocal.wYear,
      stLocal.wHour, stLocal.wMinute, stLocal.wSecond);
    printf(straccess);printf(" - Access Time\n");
 
  };
    getch();
 
 
    return 0;
}
Добавлено через 6 минут
В библиотеке winbase есть структура FILE_BASIC_INFO, среди элементов которой прописано некое ChangeTime... Возможно, с этим можно что-то поколдовать?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.06.2020, 18:32
Ответы с готовыми решениями:

Преобразование даты во временную метку
Здравствуйте! Делаю счетчик до даты на JS. start: '1514764800',/*начало года*/ end: '1546300800',/*конец...

Как в Командной строке получить дату последнего изменения файла или последнего доступа к нему?
суть такова, у меня есть список фаилов с полным адресом типо C:\sad\asds\dich.obj. требуется команда в cmd которая выводит чисто дату. ...

Как вызвать форму открытия файла?
собственно сабж...

2
0 / 0 / 0
Регистрация: 11.06.2020
Сообщений: 5
11.06.2020, 18:48  [ТС]
Нет, мне для бытового дела нужна программа. Можно поинтересоваться, из чего вы сделали такой вывод?
0
0 / 0 / 0
Регистрация: 11.06.2020
Сообщений: 5
13.06.2020, 00:01  [ТС]
Эмпирическим путем узнал, что время, изымаемое программой, таки соответствует дате последнего открытия файла, а в ПКМ>Свойства шиндоуз показывает его же, хоть и почему-то обновляет данные раз в 20-40 минут, если происходит открытие файла на чтение без записи... При записи и дата изменения, и дата открытия обновляются мгновенно.

Что ж, тему можно официально закрывать, благодарю за "многочисленные" ответы
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.06.2020, 00:01
Помогаю со студенческими работами здесь

Как использовать диалог открытия файла
скажите само диалоговое окно открывается бкз каких либо параметров или параметры ,скажем размер окна ,где оно будет находится нужно...

Как безошибочно узнать о возможности открытия файла
Имеется программа, которая должна открыть файл. Как проверить возможность его открытия. Добавлено через 2 минуты На структуру ...

Как ускорить скорость открытия файла .csv?
При нажатии кнопки для запуск процедуры Кнопка7_Click () программа работает в течение 5 часов, чтобы открыть файл .csv. Как ускорить...

OpenDialog ofCreatePrompt Диалог открытия как создание файла
Выставил значение true, выдает сообщение о создании файла, но его не создает. Пытался делать в связке ofPathMustExist , ofFileMustExist и...

Как изменить дату создания/изменения/открытия файла
Как программно изменить дату создания/изменения/открытия файла на произвольную дату?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru