في دلفي كيف اقوم بنسخ ملفات من مجلد الى آخر دون تكرار الملفات الموجودة
#2
السلام عليكم...

الكود التالي يفترض وجود مجلد اسمه 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 - 09-07-2014, 09:10 PM

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم