كيف يمكن التحكم بخصائص المجلد من إخفاء و إظهار و هل هو مجلد نظام أم لا
وحذف
removedir() لم تقم بحذف بعض المجلدات
شكراااااااااااااااااااااا
m.g.s
كيف يمكن التحكم بخصائص المجلد من إخفاء و إظهار و هل هو مجلد نظام أم لا
وحذف
removedir() لم تقم بحذف بعض المجلدات
شكراااااااااااااااااااااا
m.g.s
1 2 me and u r alone
1 2 u a i a a
انا افضل استخدام دالة الِ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' موجود قبل حذفة او نسخه ولا سرف تظهر رسالة خطا
ارجوا ان اكون موفقا في توضيح الامر
أضاعوني وأي فتى أضاعـوا * * * ليـوم كــريهـة وســـداد ثغــــر
وخـــــلونـي ومعتـرك المنايـا * * * وقد شـــرعوا أسنــتهم لنحـري
كأني لم أكــــــن فيهـم وسيطـا * * * ولم تك نســبتي في آل عمــرو
أجرر في الجـــوامع كـل يـوم * * * ألا لله مظــــلمتـي وهـصـــري
عسى الملك المجيب لمن دعاه * * * سينجيني فيعلم كيــف شكـري
فأجـــزي بالكرامـة أهـل ودي * * * وأجزي بالضـغينة أهل ضري
اعتقد ان حصلت على المطلوب هذه المرة
لاحظي ان الدالة 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;والله تعالى من وراء القصد
أضاعوني وأي فتى أضاعـوا * * * ليـوم كــريهـة وســـداد ثغــــر
وخـــــلونـي ومعتـرك المنايـا * * * وقد شـــرعوا أسنــتهم لنحـري
كأني لم أكــــــن فيهـم وسيطـا * * * ولم تك نســبتي في آل عمــرو
أجرر في الجـــوامع كـل يـوم * * * ألا لله مظــــلمتـي وهـصـــري
عسى الملك المجيب لمن دعاه * * * سينجيني فيعلم كيــف شكـري
فأجـــزي بالكرامـة أهـل ودي * * * وأجزي بالضـغينة أهل ضري
للمزيد ابحثي في الهلب عن FindFirst
أضاعوني وأي فتى أضاعـوا * * * ليـوم كــريهـة وســـداد ثغــــر
وخـــــلونـي ومعتـرك المنايـا * * * وقد شـــرعوا أسنــتهم لنحـري
كأني لم أكــــــن فيهـم وسيطـا * * * ولم تك نســبتي في آل عمــرو
أجرر في الجـــوامع كـل يـوم * * * ألا لله مظــــلمتـي وهـصـــري
عسى الملك المجيب لمن دعاه * * * سينجيني فيعلم كيــف شكـري
فأجـــزي بالكرامـة أهـل ودي * * * وأجزي بالضـغينة أهل ضري
شكراً romanof شكراً كتير كتير
شكراً على المساعدة و الإهتمام
بتمنى تبعتلي بريدك الإلكتروني على :
mahmola@hotmail.com
شكراً romanof
تم تعديل هذه المشاركة بواسطة mahmola في 2 يونيو 2005 في 22:53
1 2 me and u r alone
1 2 u a i a a
هذا الموضوع مغلق.