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

كيف يمكن التحكم بخصائص المجلد

مغلق
بدأه mahmola في 29 مايو 2005 · 4 رد · 623 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

كيف يمكن التحكم بخصائص المجلد من إخفاء و إظهار و هل هو مجلد نظام أم لا

وحذف

removedir() لم تقم بحذف بعض المجلدات

شكراااااااااااااااااااااا

m.g.s

1 2 me and u r alone

1 2 u a i a a

#2

انا افضل استخدام دالة الِApi لانها اسرع وتعمل للمجلات والملفات

SHFileOperation(lpFileOp: TSHFILEOPSTRUCT);
  ..
TSHFILEOPSTRUCT= TSHFILEOPSTRUCTA;
TSHFILEOPSTRUCTA=_SHFILEOPSTRUCTA;

_SHFILEOPSTRUCTA=packed record
  Wnd:HWND;
  WFunc:Unit;
  pFrom:PAnsiChar;
  pTo:PAnsiChar;
 fFlags: FILEOP_FLAGS;
fAnyOperationsAborted:BOOL;
hNameMappings:Pointer;
lpszProgressTitle: PAnsiChar;
end;

اهم الحقول هو WFunc الذي ياخذ احد القيم التالية

FO_COPY نسخ الملف او المجلد ذو الاسم pFrom الى الملف او المجلد ذو الاسم pTo

FO_DELETE حذف الملف او المجلد ذو الاسم pFrom (يتم اهمال قيمة pTo )

FO_MOVE نقل الملف ذو الاسم pFrom الى الملف او المجلد ذو الاسم pTo

FO_RENAME اعادة تسمية الملف ذو الاسم pFrom

الحقل fFlags ياخذ القيم التالية

FOF_ALLOWUNDO حفظ بقدر الامكان البيانات لالغاء العملية مثلا حذف الملف ثم استعادته

سلة المهملات

FOF_FILESONLY تنفيذ العملية فقط للملفات من نوع معين مثلا *.*

الى اخره مما لايتسع المجال لذكره الان

uses
ShellApi
......
public
    { Public declarations }
  function FileMange(Fromfile,Tofile,mode:integer):integer;end;

var
  Form1: TForm1;

implementation

{$R *.dfm} ;
function TForm1.FileMange(Fromfile,Tofile,mode:integer):integer;
 var SHF:TSHFileOpStruct;
begin
  with SHF do
  begin
    Wnd:=0;
    pfrom:=pchar(FromFile);
    pto:=pchar(ToFile);
    wFunc:=mode;
    fFlags:=FOF_ALLOWUNDO;
  end;
  result:=SHFileOperation(SHF);
  if Result<>0 then
    if SHF.fAnyOperationsAborted then
     Result:=1;
    else Result:=2;


end;
procedure TForm1.Button1Click(Sender: TObject);
 var flag:integer;
begin
   falg:=FileMange('C:\1','',FO_DELETE);  
   case flag of
     0:ShowMessage('successful ');
     1:ShowMessage('user aborted the operation');
     2:ShowMessage('Error');
   end;

end;

متال صغير

FileMange('C:\1','',FO_DELETE); حذف مجلد اذا ذهبت الى سلة المهملات فستجدين المجلد

هناك

FileMange('C:\t','d:\tt',FO_MOVE); سوف يتم انشاء مجلد بالاسم TT في القرص

d وسيتم نقل كافة محتويات C:\t الى هناك

لاحظى ان يكون المجلد 'C:\t' موجود قبل حذفة او نسخه ولا سرف تظهر رسالة خطا

ارجوا ان اكون موفقا في توضيح الامر

delete files.rar

أضاعوني وأي فتى أضاعـوا * * * ليـوم كــريهـة وســـداد ثغــــر

وخـــــلونـي ومعتـرك المنايـا * * * وقد شـــرعوا أسنــتهم لنحـري

كأني لم أكــــــن فيهـم وسيطـا * * * ولم تك نســبتي في آل عمــرو

أجرر في الجـــوامع كـل يـوم * * * ألا لله مظــــلمتـي وهـصـــري

عسى الملك المجيب لمن دعاه * * * سينجيني فيعلم كيــف شكـري

فأجـــزي بالكرامـة أهـل ودي * * * وأجزي بالضـغينة أهل ضري

منتديات الرياضيات العربية

#3

اعتقد ان حصلت على المطلوب هذه المرة

لاحظي ان الدالة FindFirst تحتوي على بارامتر TSearchRec يبين نوعية الملف الذي تبحثين عنه داخل المجلد

المعطى بالبارامتر path

نوعية الملفات قد تكون

 faReadOnly	Read-only files
faHidden	Hidden files
faSysFile	System files
faVolumeID	Volume ID files
faDirectory	Directory files
faArchive	Archive files
faAnyFile	Any file

وهذا هو الكود الخاص بالبرنامج الذي تبحثين عنه

uses
 ;FileCtrl  
procedure RemoveAll(path: string);
var
  sr: TSearchRec;
begin
  if FindFirst(path + '\*.*', faAnyFile, sr) = 0 then begin
    repeat
      if sr.Attr and faDirectory = 0 then begin
        DeleteFile(path + '\' + sr.name);
      end else begin
        if pos('.', sr.Name) <= 0
          then RemoveAll(path + '\' + sr.Name);
      end;
    until FindNext(sr) <> 0;
  end;
  FindClose(sr);
  RemoveDirectory(PChar(path));
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  dir: string;
begin
   dir:='C:\44'; //put the name of folder wich you want to delete
  if SelectDirectory('Delete folder', '', dir)
    then RemoveAll(dir);
end;

والله تعالى من وراء القصد

أضاعوني وأي فتى أضاعـوا * * * ليـوم كــريهـة وســـداد ثغــــر

وخـــــلونـي ومعتـرك المنايـا * * * وقد شـــرعوا أسنــتهم لنحـري

كأني لم أكــــــن فيهـم وسيطـا * * * ولم تك نســبتي في آل عمــرو

أجرر في الجـــوامع كـل يـوم * * * ألا لله مظــــلمتـي وهـصـــري

عسى الملك المجيب لمن دعاه * * * سينجيني فيعلم كيــف شكـري

فأجـــزي بالكرامـة أهـل ودي * * * وأجزي بالضـغينة أهل ضري

منتديات الرياضيات العربية

#4

للمزيد ابحثي في الهلب عن FindFirst

أضاعوني وأي فتى أضاعـوا * * * ليـوم كــريهـة وســـداد ثغــــر

وخـــــلونـي ومعتـرك المنايـا * * * وقد شـــرعوا أسنــتهم لنحـري

كأني لم أكــــــن فيهـم وسيطـا * * * ولم تك نســبتي في آل عمــرو

أجرر في الجـــوامع كـل يـوم * * * ألا لله مظــــلمتـي وهـصـــري

عسى الملك المجيب لمن دعاه * * * سينجيني فيعلم كيــف شكـري

فأجـــزي بالكرامـة أهـل ودي * * * وأجزي بالضـغينة أهل ضري

منتديات الرياضيات العربية

#5

شكراً romanof شكراً كتير كتير

شكراً على المساعدة و الإهتمام

بتمنى تبعتلي بريدك الإلكتروني على :

mahmola@hotmail.com

شكراً romanof

تم تعديل هذه المشاركة بواسطة mahmola في 2 يونيو 2005 في 22:53

1 2 me and u r alone

1 2 u a i a a

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

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