الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

,ين المشكلة في هالكود؟!!

مغلق
بدأه jrahma في 10 أغسطس 2003 · 4 رد · 839 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

أنا أحاول أن أصنع ملف dll لمحو جميع الملفت والمجلدات داخل مجلد معين ولكن لم أوفق!!!

library beSafe;

uses
  SysUtils, Classes, Windows, Messages, Variants, Graphics, Controls,
  Forms, Dialogs, StdCtrls, Buttons, Mask, Registry, ShellAPI,
  ShlObj, ShFolder;

const MAX_STRING_LENGTH = 255;

{$R *.res}

procedure DeleteOneDirectory; stdcall;
var
   l_attr      : word;
   l_SearchRec : TSearchRec;
   buff : array[0..MAX_COMPUTERNAME_LENGTH] of char;
begin
  SHGetFolderPath(Application.Handle, CSIDL_COOKIES, 0, 0, Pchar(@buff));

  if FindFirst(buff + '*.*', faAnyFile, l_SearchRec) = 0 then
  begin
    Repeat
      if (l_SearchRec.Name <> '.') and (l_SearchRec.Name <> '..') then
        begin
          if not DeleteFile (PChar(buff + '' + l_SearchRec.Name)) then
            begin
              l_attr := FileGetAttr(buff + '' + l_SearchRec.Name);
                if (l_attr and faReadOnly <> 0) or
                    (l_attr and faHidden   <> 0) or
                    (l_attr and faSysFile  <> 0) then
                 begin
                     FileSetAttr(buff + '' + l_SearchRec.Name, faArchive);
                     if DeleteFile (PChar(buff + '' + l_SearchRec.Name)) then
                         ; {should be able to delete now}
                 end
                 else
                 if (l_attr and faDirectory <> 0) then
                  DeleteOneDirectory(buff + '' + l_SearchRec.Name, AShowErr)
             end
         end;
       until FindNext(l_SearchRec) <> 0;
       FindClose(l_SearchRec);
   end;
end;

exports DeleteOneDirectory;

begin
end.
#2

أريد حلاً بسرعة يا شباب..

الظاهر أكثر خبرائنا راحوا إجازات:o ... الله يهنيهم;)....

#3

على كل حال المثال المرفق يحوي كود بسيط جدا لمعرفة أسماء الملفات الموجودة في مجلد ما ( المجلد الحالي مثلا ) ,, يجب إضافة تعليمة حذف الملفات وهي بسيطة أيضا DeleteFile() وإن شاء الله كلة يكون تمام ..

أخوك أبو ديلفي ,,

إذا لم تنجح نحاول سويا مرة أخرى أنا وأنت ...

files.zip

#4

شكرا أخي العزيز

لكن الأمر deletefile موجود أصلاً في الكود!! ممكن تطبعه وتجربه عندك إذا سمحت وتخبرني.

#5

أخي الكريم،

هذه المشكلة حصلت معي في السابق، وقد تبين لي بأن SearchRec.Name تعطي اسم الملف مضافاً إليه بعض الاحرف الغريبة في نهايته، بعد حذف هذه الاحرف بواسطة

TheFileName := copy(SearchRec.Name, 0, pos('.xml',SearchRec.Name) + 3) ;

حُلت المشكلة.

"المثال ينطبق على الملفات التي كنت اريدها".

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…