PDA

View Full Version : کپی کردن فایل



TAVANA002
دوشنبه 16 شهریور 1388, 09:02 صبح
چه جوری میشه یه فایلو از یه فولدر به یه فولدر دیگه کپی کرد.در ضمن اسم فایل بر اساس متنیه که کاربر تو یکی از ادیتها تایپ میکنه، یعنی اسم فایل ثابت نیست.با دستور copyfile نمیشه به یه ادیت اشاره کرد

majid_ramak
دوشنبه 16 شهریور 1388, 09:25 صبح
چه جوری میشه یه فایلو از یه فولدر به یه فولدر دیگه کپی کرد.در ضمن اسم فایل بر اساس متنیه که کاربر تو یکی از ادیتها تایپ میکنه، یعنی اسم فایل ثابت نیست.با دستور copyfile نمیشه به یه ادیت اشاره کرد
باید ShellAPI رو Use کنی دوست عزیز




function scShellCopyFile(FormHandle : THandle; StrFrom, StrTo : string;
BlnSilent : Boolean = False) : Boolean;
var
F : TShFileOpStruct;
begin
F.Wnd := FormHandle;
F.wFunc := FO_COPY;
F.pFrom := PChar(StrFrom + #0);
F.pTo := PChar(StrTo + #0);
F.fFlags := FOF_ALLOWUNDO or FOF_RENAMEONCOLLISION;
if BlnSilent then
F.fFlags := F.fFlags or FOF_SILENT;
if ShFileOperation(F) <> 0 then
Result := False
else
Result := True;
end;

Felony
دوشنبه 16 شهریور 1388, 09:50 صبح
اسم فایل ثابت نیست.با دستور copyfile نمیشه به یه ادیت اشاره کرد
ربطی به ثابت بودن یا نبودن اسم فایل نداره .


CopyFile(PChar(Edit1.Text),PChar(Edit2.Text),True) ;

vcldeveloper
دوشنبه 16 شهریور 1388, 12:48 عصر
F.pFrom := PChar(StrFrom + #0);
F.pTo := PChar(StrTo + #0);

string در دلفی بطور خودکار به #0 ختم میشه؛ نیازی نیست که شما یک #0 اضافه کنید.


چه جوری میشه یه فایلو از یه فولدر به یه فولدر دیگه کپی کرد.در ضمن اسم فایل بر اساس متنیه که کاربر تو یکی از ادیتها تایپ میکنهبه غیر از روش های بالا، اگر از دلفی 2010 استفاده می کنید، این راه هم هست:

TFile.Copy(Edit1.Text, Edit2.Text);

البته یونیت IOUtils باید به لیست uses اضافه بشه.