Текущий архив: 2005.10.02;
Скачать: CL | DM;
Вниз
Подскажите плз как узнать время создания файла Найти похожие ветки
← →
JTAG (2005-08-24 13:48) [0]Уважаемая конференция подскажите плз как узнать время создания файла??? В хелпе нашел функцию FileGetAttr , не могу понять как с ней работать.
← →
КаПиБаРа © (2005-08-24 13:50) [1]yandex + FileGetAttr
← →
MBo © (2005-08-24 13:53) [2]Ну уж времени эта функция не даст...
Findfirst+ анализ возвращенной SearchRec/FindData
← →
JTAG (2005-08-24 14:07) [3]Для получения или установки параметров файла используется спец переменная.
TSearchRec = record
time:integer;
size:integer;
attr:integer;
name: TFileName;
ExcludeAttr:integer;
FindHandle:THandle;
FindData:TWin32FindData;
end.
Нашел , а как сней работать подскажите чайнику.
← →
begin...end © (2005-08-24 14:28) [4]> JTAG (24.08.05 14:07) [3]
Время создания файла находится в поле TSearchRec.FindData.ftCreationTime.
← →
JTAG (2005-08-24 15:26) [5]Вот я написал процедуру, при нажатии кнопки выбираю нужный файл, открываю его и очень нужно узнать его дату создания
---------------------------------------------------
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 15:31) [6]> JTAG (24.08.05 15:26) [5]
> Reset(fileofdata)
Зачем Вы открываете файл? В смысле, потом из него что-то читается?
← →
JTAG (2005-08-24 15:43) [7]Если у меня дата редактирования файла изменилась , то мне нужно его открыть и считать, а так читать не нужно только в цикле проверять дату создания через несколько секунд.
← →
begin...end © (2005-08-24 15:53) [8]> 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:58) [9]Огромное спасибо!
← →
JTAG (2005-08-24 16:14) [10]Еще если можно один вопрос
Посмотрел хелп для функции
function FileAge(const FileName: string): Integer;
Написано что она возвращает значение которое может быть конвертировано в TDateTime используя функцию FileDateToDateTime.
Вообщем как из значения интежер возвращаемое функцией FileAge получить реальную дату?
← →
begin...end © (2005-08-24 16:19) [11]> JTAG (24.08.05 16:14) [10]
var
DT: TDateTime;
begin
DT := FileDateToDateTime(FileAge("C:\MyFile.txt"))
end.
← →
JTAG (2005-08-24 16:30) [12]Огромейшее спасибо!
← →
JTAG (2005-08-24 17:33) [13]Можно еще один вопрос.
При помощи функции 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???
← →
begin...end © (2005-08-24 17:40) [14]> JTAG (24.08.05 17:33) [13]
SR.name -- это только имя файла, без пути (маршрута доступа) к нему. Дополняйте его.
← →
JTAG (2005-08-24 17:45) [15]Типа так ....
df:=fileage ("F:\files\SR.name");
Что-то не хочет находить.
← →
JTAG (2005-08-24 18:02) [16]Дошло , огромное спасибо.
Страницы: 1 вся ветка
Текущий архив: 2005.10.02;
Скачать: CL | DM;
Память: 0.5 MB
Время: 0.05 c