Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как узнать информацию о файле? Дата создания/редактирования, размер 
V
    Опции темы
Green_eyed
Дата 5.7.2007, 13:13 (ссылка)   | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 22.1.2007

Репутация: -1
Всего: нет



Есть полный путь к файлу. Нужно узнать размер, дату и время создания/последнего изменения. Как это сделать?
Использовать класс TFileStream не получится - с его помощью нельзя открывать скрытые и системные файлы, а мне надо.
PM MAIL   Вверх
Klin
Дата 5.7.2007, 13:23 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1938
Регистрация: 7.10.2002
Где: Краснодар

Репутация: 20
Всего: 25



Код

include <SysUtils.hpp>
struct TSearchRec
{
  int Time;        // время создания файла
  int Size;        // размер файла в байтах
  int Attr;        // аттрибуты файла
  AnsiString Name;       // имя его
  int ExcludeAttr;
  int FindHandle;
  _WIN32_FIND_DATAA FindData;
};



--------------------
Я человек - попробуйте обвинить меня за это.
PM MAIL   Вверх
Green_eyed
Дата 7.7.2007, 19:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 22.1.2007

Репутация: -1
Всего: нет



Цитата(Klin @ 5.7.2007,  13:23)
Код

include <SysUtils.hpp>
struct TSearchRec
{
  int Time;        // время создания файла
  int Size;        // размер файла в байтах
  int Attr;        // аттрибуты файла
  AnsiString Name;       // имя его
  int ExcludeAttr;
  int FindHandle;
  _WIN32_FIND_DATAA FindData;
};

Да это я знаю. А как мне узнать время последнего редактирования?
PM MAIL   Вверх
Alexeis
Дата 7.7.2007, 19:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 26
Всего: 459



Функция GetFileAttributesEx(); возвращает.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Green_eyed
Дата 9.7.2007, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 22.1.2007

Репутация: -1
Всего: нет



Спасибо за функцию. А как перевести FILETIME в TDateTime?
PM MAIL   Вверх
Rodman
Дата 9.7.2007, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 7
Всего: 122



Код

void GetFileData(char * FilePath)
{
 TWin32FileAttributeData fi;
 TFileTime ft1;
 TSystemTime st;
 GetFileAttributesEx("r.txt", GetFileExInfoStandard,
                              &fi);
 Edit1->Text = IntToStr(fi.nFileSizeLow)+" килограмм";

 ft1 = fi.ftLastAccessTime;    //дата последнего доступа
 FileTimeToSystemTime(&ft1,&st);
 Edit2->Text = IntToStr(st.wDay)+'.'+IntToStr(st.wMonth)+'.'
               +IntToStr(st.wYear);

 ft1 = fi.ftLastWriteTime;     //дата последней модификации
 FileTimeToSystemTime(&ft1,&st);
 Edit3->Text = IntToStr(st.wDay)+'.'+IntToStr(st.wMonth)+'.'
             +IntToStr(st.wYear);
 //и так далее...
}
это имелось ввиду?
PM MAIL WWW Skype GTalk YIM MSN   Вверх
Alexeis
Дата 9.7.2007, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 26
Всего: 459



через SystemTime. FileTimeToSystemTime() + SystemTimeToDateTime()


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Green_eyed
Дата 9.7.2007, 20:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 22.1.2007

Репутация: -1
Всего: нет



Всем спасибо. Тема закрыта.

P.S. К результату SystemTimeToDateTime() почему-то надо было еще 4 часа прибавить.
PM MAIL   Вверх
dumb
Дата 10.7.2007, 02:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 32
Всего: 158



Цитата(Green_eyed @  9.7.2007,  21:24 Найти цитируемый пост)
P.S. К результату SystemTimeToDateTime() почему-то надо было еще 4 часа прибавить.

что такое "часовые пояса" знаешь? ликбез

Код

        TFileTime ftl;
        TSystemTime st;
...
        FileTimeToLocalFileTime( &fi.ftLastWriteTime, &ftl );
        FileTimeToSystemTime( &ftl, &st );
        TDateTime dt = SystemTimeToDateTime( st );


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.1067 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.