delphi4arab منتديات دلفي للعرب

نسخة كاملة : في دلفي كيف اقوم بنسخ ملفات من مجلد الى آخر دون تكرار الملفات الموجودة
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم
في دلفي كيف اقوم بنسخ و لسق ملفات من مجلد اقوم بتحديده الى آخر اقوم ايضا بتحديده
دون تكرار الملفات الموجودة آنفا
السلام عليكم...

الكود التالي يفترض وجود مجلد اسمه Source كمصدر للملفات، و مجلد آخر اسمه Target لوضع نسخ من الملفات فيه، و أن كلا المجلدين موجودين ضمن نفس المجلد الذي يوجد به البرنامج:

كود :
procedure TForm1.Button1Click(Sender: TObject); var SourcePath, TargetPath: string; FileObject: TSearchRec; begin SourcePath := IncludeTrailingBackslash(ExtractFilePath(Application.ExeName)) + 'Source\'; TargetPath := IncludeTrailingBackslash(ExtractFilePath(Application.ExeName)) + 'Target\'; if FindFirst(SourcePath + '*.*', faAnyFile, FileObject) = 0 then begin repeat if (FileObject.Attr and faDirectory) = 0 then begin ShowMessage(FileObject.Name); CopyFile(PChar(SourcePath + FileObject.Name), PChar(TargetPath + FileObject.Name), True); end; until FindNext(FileObject) <> 0; end; end;

طبعاً ستحدد مسار المجلدين Source و Target حسب ما لديك في البرنامج.

جملة الاختبار if (FileObject.Attr and faDirectory) = 0 then begin هي لاستبعاد المجلدات لأن كلاً من الدالة FindFirst و FindNext تعيد أيضاً أسماء المجلدات الفرعية.

* المهم في الأمر، و لمنع استبدال الملفات الموجودة سابقاً بنفس الاسم في المجلد الهدف، هو ضبط البارامتر الثالث للدالة CopyFile على True لأن ذلك سيمنع الدالة من نسخ الملف المصدر إذا كان هناك ملف بنفس الاسم في المجلد الهدف.

نرجو الاستفادة و السلام.
najy ibraheem كتب :الكود التالي يفترض وجود مجلد اسمه source كمصدر للملفات، و مجلد آخر اسمه target لوضع نسخ من الملفات فيه، و أن كلا المجلدين موجودين ضمن نفس المجلد الذي يوجد به البرنامج:
ممكن سورس بسيط لو تكرمت اخي