PDA

View Full Version : بدست آوردن تاریخ ساخت یک فایل در دلفی



khanboloky
سه شنبه 03 مهر 1386, 03:16 صبح
به کد نویسی بدست آوردن تاریخ ساخت یک فایل در دلفی نیاز دارم.

babak869
سه شنبه 03 مهر 1386, 04:17 صبح
Here's a procedure to change the created date "attribute" for a given file:
~~~~~~~~~~~~~~~~~~~~~~~~~
function SetFileDate(
Const FileName : String;
Const FileDate : TDateTime): Boolean;
var
FileHandle : THandle;
FileSetDateResult : Integer;
begin
try
try
FileHandle := FileOpen
(FileName,
fmOpenWrite OR fmShareDenyNone) ;
if FileHandle > 0 Then begin
FileSetDateResult :=
FileSetDate(
FileHandle,
DateTimeToFileDate(FileDate)) ;
result := (FileSetDateResult = 0) ;
end;
except
Result := False;
end;
finally
FileClose (FileHandle) ;
end;
end;

{Usage:}
SetFileDate('c:\mydir\myfile.ext', Now)

Mahmood_M
سه شنبه 03 مهر 1386, 04:43 صبح
جناب احدی ، کدی که شما گذاشتید تاریخی رو به عنوان تاریخ یک فایل برای اون ست میکنه ... !


به کد نویسی بدست آوردن تاریخ ساخت یک فایل در دلفی نیاز دارم.
با تابعی مثل تابع زیر میتونید تاریخ فایل رو بدست بیارید :

function GetDateofFile(FileName : String) : TDateTime;
var
FH : THandle;
begin
FH := FileOpen(FileName, fmOpenWrite or fmShareDenyNone);
Result := FileDateToDateTime(FileGetDate(FH));
end;

تاریخ فایل از نوع Integer هست ولی در تابع بالا وقتی بدست می یاد با تابع دیگری که FileDateToDateTime نام داره ، به نوع TDateTime تبدیل میشه ...

موفق باشید ...

khanboloky
سه شنبه 03 مهر 1386, 22:45 عصر
با سلام وتشکر از راهنمایی شما
هدفم گرفتن تاریخ ساخت بصورت integer می باشد اگر فقط از تابع
function GetDateofFile(FileName : String) : TDateTime;
استفاده کنم کافی است؟
نمی دانم چگونه آدرس فایل را بدهم
اگر امکان دارد توضیح بفرماییدبا استفاده از تابع فوق چگونه با گذاشتن یک Button بر روی فرم و Click آن میتوان تاریخ ساخت فایل را در یک Edit دید.
البته از اینکه با سوالات در سطح پایین وقت شما را می گیرم شرمنده ام ولی باور بفرمایید به اطلاعت فوق نیاز مبرم دارم .با تشکر.

babak869
سه شنبه 03 مهر 1386, 23:20 عصر
محمود جان سلام
درسته ببخشید من اون تاپیک رو ساعت 5 صبح دیدم و جواب دادم (کمی خواب آلود بودم ) اشتباه کد رو گذاشتم . از توجه و تذکر بجاتون ممنونم
موفق باشید

Mahmood_M
سه شنبه 03 مهر 1386, 23:22 عصر
هدفم گرفتن تاریخ ساخت بصورت integer می باشد
برای این که تاریخ رو به صورت Integer داشته باشید ، تابع رو به این صورت تغییر بدید :

function GetDateofFile(FileName : String) : Integer;
var
FH : THandle;
begin
FH := FileOpen(FileName, fmOpenWrite or fmShareDenyNone);
Result := FileGetDate(FH);
end;

نمی دانم چگونه آدرس فایل را بدهم
فایل در کجا قرار داره ؟ در کنار برنامتون ؟ یا ... ؟
برای بدست آوردن مسیر توابع زیادی نظیر GetFilePath و GetFileDir یا .. هست ، مشکلتون کجاست که نمی تونید آدرس فایل رو بدید ؟!‌ ...

فقط کافیه که در تابع بالا آدرس فایل رو وارد کنید و تاریخ رو به صورت Integer بدست بیارید ...


محمود جان سلام
درسته ببخشید من اون تاپیک رو ساعت 5 صبح دیدم و جواب دادم (کمی خواب آلود بودم ) اشتباه کد رو گذاشتم . از توجه و تذکر بجاتون ممنونم
موفق باشید
خواهش می کنم ...

موفق باشید ...

khanboloky
چهارشنبه 04 مهر 1386, 05:01 صبح
من یک فایل در درایو E دارم بنام T پروژه در درایو c نصب شده لطفا نام وآدرس داده شده رادر تابعی که مطرح کردید
بنویسید تا متوجه شوم با تشکر

پرواز
چهارشنبه 04 مهر 1386, 06:57 صبح
من یک فایل در درایو E دارم بنام T پروژه در درایو c نصب شده لطفا نام وآدرس داده شده رادر تابعی که مطرح کردید
بنویسید تا متوجه شوم با تشکر
در تکمیل صحبت دوستان:
فرض کنیم که اسم کامل فایل شما این باشه: E:\TestFile.txt
کافیه شما تابع بالا رو به همین صورتی که هست کپی کنید تو کدتون و تو رویداد OnClick مربوط به Button اینجوری بنویسید:
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Text := IntToStr(GetDateofFile('E:\TestFile.txt'));
end;

که در کل اینجوری میشه:

function GetDateofFile(FileName : String) : Integer;
var
FH : THandle;
begin
FH := FileOpen(FileName, fmOpenWrite or fmShareDenyNone);
Result := FileGetDate(FH);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Text := IntToStr(GetDateofFile('E:\TestFile.txt'));
end;

khanboloky
چهارشنبه 04 مهر 1386, 11:51 صبح
در درایو E یک فایل بنام T دارم و پروژه در درایو c می باشد لطفا این اطلاعت را درون تابعی که مطرح کردید بنویسید تا متوجه شوم با سپاس فراوان.

khanboloky
چهارشنبه 04 مهر 1386, 16:48 عصر
مواردی که شما فرمودید را انجام می دهم تابع بجای تاریخ ساخت یک عدد 9 رقمی باز می گرداند بعنوان مثال یک فایل که تاریخ ساخت آن 2007/09/24 میباشد بجای این تاریخ عدد 926395802 راباز می گرداند در ضمن file system کامپیوتر من NTFS می باشد لطفا راهنمایی کنید.با تشکر.

پرواز
چهارشنبه 04 مهر 1386, 23:05 عصر
مواردی که شما فرمودید را انجام می دهم تابع بجای تاریخ ساخت یک عدد 9 رقمی باز می گرداند بعنوان مثال یک فایل که تاریخ ساخت آن 2007/09/24 میباشد بجای این تاریخ عدد 926395802 راباز می گرداند در ضمن file system کامپیوتر من NTFS می باشد لطفا راهنمایی کنید.با تشکر.
شما هنوز خودتون هم نمی دونید چی می خواید.

اول تاریخ فایل رو خواسته بودین و دوستان راهنمایی کردن.
دوباره گفتین نه من تاریخ رو بصورت Integer می خوام. کد اون رو هم براتون آپ کردن.
گفتین نحوه استفاده که من نحوه استفاده کدی که دوستان زحمت کشیده بودن رو گذاشتم.
حالا میگید به من عدد نه رقمی میده. خوب مسلمه که عدد میده. شما خودت خواسته بودی تاریخ رو بصورت Integer بگیری. مگه نوع Integer چیزی غیر از اینه؟حالا هم اگه می خوای نوع تاریخ رو بگیری همون تابعی که بار اول گرفتی رو استفاده کن.
موفق باشی.

miyandari
جمعه 24 آبان 1392, 12:29 عصر
var
LH: THandle;
LFDate: Integer;

begin
{ Open a file. }
LH := FileOpen('test.txt', fmOpenRead);
{ Get the date from the file. }
LFDate := FileGetDate(LH);
{ Close the file. }
FileClose(LH);

{ Increment the old date by one hour, then apply the new date. }
FileSetDate('test.txt',
DateTimeToFileDate(
IncHour(FileDateToDateTime(LFDate), 1)));
end.