Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Подскажите плз как узнать время создания файла [D7, WinXP]


JTAG ©   (2005-08-24 13:48:00) 

Уважаемая конференция подскажите плз как узнать время создания файла??? В хелпе нашел функцию FileGetAttr , не могу понять как с ней работать.


JTAG   (2005-08-24 18:02:00) [1]

Дошло , огромное спасибо.


JTAG   (2005-08-24 17:45:00) [2]

Типа так ....
df:=fileage ('F:\files\SR.name');
Что-то не хочет находить.


begin...end   (2005-08-24 17:40:00) [3]

> JTAG   (24.08.05 17:33) [13]

SR.name -- это только имя файла, без пути (маршрута доступа) к нему. Дополняйте его.


JTAG   (2005-08-24 17:33:00) [4]

Можно еще один вопрос.
При помощи функции FindNext нахожу файл и потом имя этого файла хочу передать функции Fileage, но он не передается  
---------------------вот кусочек------
var SR:TSearchRec;
var df:integer;

10:       if findnext(SR)=0
          then
                begin //2
             df:=fileage (SR.name);  // тут пытаюсь передать имя найденного файла
    Memo1.Lines.Append('df ='+Inttostr(df)+' '); печатает -1 функция fileage не отрабатывает
             goto 10;
                end;
Как передать имя найденного файла функцией findnext в функцию fileage???


JTAG   (2005-08-24 16:30:00) [5]

Огромейшее спасибо!


begin...end   (2005-08-24 16:19:00) [6]

> JTAG   (24.08.05 16:14) [10]

var
 DT: TDateTime;
begin
 DT := FileDateToDateTime(FileAge('C:\MyFile.txt'))
end.


JTAG   (2005-08-24 16:14:00) [7]

Еще если можно один вопрос
Посмотрел хелп для функции
function FileAge(const FileName: string): Integer;
Написано что она возвращает значение которое может быть конвертировано в TDateTime используя функцию FileDateToDateTime.
Вообщем как из значения интежер возвращаемое функцией FileAge получить реальную дату?


JTAG   (2005-08-24 15:58:00) [8]

Огромное спасибо!


begin...end   (2005-08-24 15:53:00) [9]

> JTAG   (24.08.05 15:43) [7]

> Если у меня дата редактирования файла изменилась , то мне нужно его открыть и считать

Так что именно интересует -- дата последнего редактированияили дата созданияфайла? Если первое, то поможет функция FileAge. Если второе, то так:

var
 H: Cardinal;
 FD: TWin32FindData;
begin
 H := FindFirstFile(PChar(OpenDialog1.FileName), FD);
 if H <> INVALID_HANDLE_VALUE then
 begin
   Windows.FindClose(H)
   // Работаем с FD.ftCreationTime -- это и есть время создания файла (в формате TFileTime)
 end
end.


JTAG   (2005-08-24 15:43:00) [10]

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


begin...end   (2005-08-24 15:31:00) [11]

> JTAG   (24.08.05 15:26) [5]

> Reset(fileofdata)

Зачем Вы открываете файл? В смысле, потом из него что-то читается?


JTAG   (2005-08-24 15:26:00) [12]

Вот я написал процедуру, при нажатии кнопки выбираю нужный файл, открываю его и очень нужно узнать его дату создания
---------------------------------------------------
procedure TForm1.Button3Click(Sender: TObject);
var var fileofdata: file of byte;
begin
opendialog1.initialdir:='d:\temp\';
opendialog1.filter:=' (*.bmp)|*.bmp|Allfiles (*.*)|*.*';

if opendialog1.execute then
    AssignFile(fileofdata, opendialog1.filename);
    Reset(fileofdata);

closefile(fileofdata);
end;
Как мне использовать TSearchRec.FindData.ftCreationTime ???


begin...end   (2005-08-24 14:28:00) [13]

> JTAG   (24.08.05 14:07) [3]

Время создания файла находится в поле TSearchRec.FindData.ftCreationTime.


JTAG   (2005-08-24 14:07:00) [14]

Для получения или установки параметров файла используется спец переменная.
TSearchRec = record
          time:integer;
          size:integer;
          attr:integer;
          name: TFileName;
          ExcludeAttr:integer;
          FindHandle:THandle;
          FindData:TWin32FindData;
end.
Нашел , а как сней работать подскажите чайнику.


MBo   (2005-08-24 13:53:00) [15]

Ну уж времени эта функция не даст...
Findfirst+ анализ возвращенной SearchRec/FindData


КаПиБаРа   (2005-08-24 13:50:00) [16]

yandex + FileGetAttr


Наверх

Титульная страница Поиск, карта сайта Написать письмо