PDA

View Full Version : سوال: توضیح در مورد این پروسیجر



Mask
یک شنبه 25 اردیبهشت 1390, 21:40 عصر
با سلام.
اگه دوستان در مورد پروسیجر زیر یه توضیحی بدهند که چی به چیه ممنون دار میشم.

procedure TForm1.CopyFolder(CopyFrom, CopyTo, CopyMask: String);
var
FO: TSHFileOpStruct;
begin
If Not DirectoryExists(CopyFrom) Then Exit;
FO.Wnd := Application.Handle;
FO.wFunc := FO_COPY;
FO.pFrom := PChar(IncludeTrailingBackSlash(CopyFrom) + CopyMask + #0#0);
FO.pTo := PChar(IncludeTrailingBackSlash(CopyTo) + #0#0);
FO.fFlags := FOF_NOCONFIRMATION Or FOF_NOCONFIRMMKDIR Or FOF_SILENT Or FOF_ALLOWUNDO;
ShFileOperation(FO);
end;

یوسف زالی
دوشنبه 26 اردیبهشت 1390, 08:31 صبح
procedure TForm1CopyFolder(CopyFrom, CopyTo, CopyMask: String);
var
FO: TSHFileOpStruct;
begin
// ye directory ro kamel copy mikone ba mohtaviatesh
If Not DirectoryExists(CopyFrom) Then // age directory vojood nadasht
Exit;
FO.Wnd := Application.Handle;
FO.wFunc := FO_COPY; // kari ke mikhayd konid mesle move , copy
// IncludeTrailingBackSlash akhare masir age \ nadsht uno mizare
// CopyMask vase ine ke masalan tu ye halghe akhare esmesh ye chizi bechasbunin, masalan Folder_1, Folder_2, ...
FO.pFrom := PChar(IncludeTrailingBackSlash(CopyFrom) + CopyMask + #0#0);
FO.pTo := PChar(IncludeTrailingBackSlash(CopyTo) + #0#0);
// setting haye copy kardan
FO.fFlags := FOF_NOCONFIRMATION Or FOF_NOCONFIRMMKDIR Or FOF_SILENT Or FOF_ALLOWUNDO;
// anjame kar
ShFileOperation(FO);
end;

Mask
دوشنبه 26 اردیبهشت 1390, 11:47 صبح
ممنون.
اما بیشتر منظورم تفسیر خود دستورات بود. نه روند کار...
مثلا اینکه : TSHFileOpStruct چیه؟
پارامترهای pFrom یا fFlags یا ... چیه؟
ShFileOperation(FO) چیه؟
و ...
این دستورات از کدوم یونیته؟
در مورد دستورات و پارامترهاشون؟

یوسف زالی
دوشنبه 26 اردیبهشت 1390, 12:02 عصر
تو ShellAPi هست.

_SHFILEOPSTRUCTA = packed record
Wnd: HWND;
wFunc: UINT;
pFrom: PAnsiChar;
pTo: PAnsiChar;
fFlags: FILEOP_FLAGS;
fAnyOperationsAborted: BOOL;
hNameMappings: Pointer;
lpszProgressTitle: PAnsiChar; { only used if FOF_SIMPLEPROGRESS }
end;


بهترین کار اینه که با نگهداشتن Ctrl و کلیک بری تو سورسش و بخونیش.

بعدش هم گفتم که pFrom یعنی چیو میخوای کپی کنی.
pTo کجا کپی کنی.
fFlags مثلا نشونت بده داره کپی میکنه یا نه.
اگه وجود داشت بپرسه یا نه...