![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Подскажите плз как узнать время создания файла [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