PDA

View Full Version : کپی یک فولدر از سی دی به هارد و تشخیص اتوماتیک درایو سی دی



alireza_63
یک شنبه 25 مرداد 1383, 22:47 عصر
سلام ...

چه راهی جهت کپی یک فولدر از سی دی رام به یک فولدر در هارد به همراه Progress وجود داره ؟

در حالتی که خود برنامه بتونه درایو سی دی رام رو تشخیص بده ....

ممنون میشم از راهنمایی تون .

nasr
دوشنبه 26 مرداد 1383, 08:32 صبح
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,shellapi, StdCtrls, WinSkinData;

type
TForm1 = class(TForm)
Label1: TLabel;
Button1: TButton;
Label2: TLabel;
Button2: TButton;
Edit1: TEdit;
Button4: TButton;
SkinData1: TSkinData;
Label3: TLabel;
Button3: TButton;
OpenDialog1: TOpenDialog;
procedure Button1Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
ch: Char;
s: string;

implementation

{$R *.dfm}

// ˜í ÏÇíјÊæ&Ntil de;í
procedure CopyFolder(SrcFolder, DstFolder : String);
var
SearchRec : TSearchRec;
Src, Dst : String;

begin
Src := IncludeTrailingBackslash(SrcFolder);
Dst := IncludeTrailingBackslash(DstFolder);
ForceDirectories(Dst);

if FindFirst(Src + '*.*', faAnyFile, SearchRec) = 0 then
try
repeat
with SearchRec do
if (Name <> '.') and (Name <> '..') then
if (Attr and faDirectory) > 0 then
CopyFolder(Src + Name, Dst + Name)
else
CopyFile(Pchar(Src + Name), PChar(Dst + Name), True);
until FindNext(SearchRec) <> 0;
finally
FindClose(SearchRec);
end ;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Button4.Visible := true;
Edit1.Visible := true;
Label3.Visible := true;
end;

procedure TForm1.Button4Click(Sender: TObject);
// íÏÇ ˜ÑÏä Óí Ïí ÑÇã
var
a : string;
begin
for ch := 'D' to 'Z' do
begin
s := ch + ':\';
if GetDriveType(PChar(s)) = DRIVE_CDROM then begin
a := s ;
CopyFolder(a ,Edit1.Text + 'MultiMedia');
end;
end;
close;

end;

end.

alireza_63
سه شنبه 27 مرداد 1383, 16:38 عصر
سلام به شما دوست عزیز

و تشکر از لطفتون ...

2 تا مشکل وجود داره :

1. WinSkinData رو پیدا نمیکنه ...
2. در مورد نوار Progress توضیحی نفرمودید ...

ممنونم از توجهتون .

nasr
پنج شنبه 05 شهریور 1383, 07:43 صبح
سلام

WinSkinData که کامپوننت VCLSkin است که من استفاده کرده ام شما می تونید حذفش کنید

دومیش را نمی دونم