delphi4arab منتديات دلفي للعرب
نسخ الملفات - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : نسخ الملفات (/showthread.php?tid=10440)



نسخ الملفات - احمد العراقي - 11-09-2019

مرحبا شباب 
اريد كود يقوم بنسخ جميع الملفات من \:d  الى   \:c


RE: نسخ الملفات - larbiparadox - 11-09-2019

* يمكن عمل ذلك بإستعمل مكتبة ShellAPI

كود :
uses ShellAPI;

* بعد ذلك نقوم بكتابة إجراء يساعد على : النسخ أو النقل أو تغيير الاسم ، وذلك الاحتياج

كود :
procedure FileAction(action:longint;fromDir,toDir:string); var MyFileAction:TSHFileOpStruct; begin MyFileAction.wnd :=Form1.handle; MyFileAction.wFunc :=action; MyFileAction.pFrom :=Pchar(fromDir +#0+#0); MyFileAction.pTo :=Pchar(toDir +#0+#0); MyFileAction.fFlags:=FOF_ALLOWUNDO or FOF_NOCONFIRMATION or FOF_SILENT; MyFileAction.fAnyOperationsAborted:=false; MyFileAction.hNameMappings :=NIL; MyFileAction.lpszProgressTitle :=NIL; SHFileOperation(MyFileAction); end;

* الان تنفيذ الجراء :  FO_MOVE,FO_DELETE,FO_COPY,FO_RENAME
امثلة:

- لعملية النسخ :
كود :
FileAction(FO_COPY,Edit1.text,Edit2.text);
- لعملية النقل ملفات من مجلد الى اخر :
كود :
FileAction(FO_MOVE,Edit1.text,Edit2.text);

حمل المثال من المرفقات


RE: نسخ الملفات - احمد العراقي - 11-09-2019

شكرا على المساعدة لكن لو سمحت انا طلبت نسخ جميع محتويات d الى c اي نسخ جميع الملفات و الفايلات من الهارد d الى الهارد c


RE: نسخ الملفات - larbiparadox - 12-09-2019

(11-09-2019, 09:08 PM)احمد العراقي كتب : شكرا على المساعدة لكن لو سمحت انا طلبت نسخ جميع محتويات d الى c اي نسخ جميع الملفات و الفايلات من الهارد d الى الهارد c

* يمكن فعل ذلك بالمثال المقدم ، ولكن سيأخذ وقت كبير كلما كبر حجم البيانات و حسب امكانيات الجهاز

- كما يمكن فعل ذلك بواسطة ملف DOS أو ملف تنفيذي bat

* انا شخصيا انصحك اذا حجم البيانات كبير بإستعمال برامج النسخ كمثال : TeraCopy ،  Supercopier ، .. إلخ

- اما اذا كانت الملفات ذات حجم صغير يمكنك الاستعانة بالمثال المقدم  ، اكتب في الخانة الاولى :C و الخانة الثانية Big Grin