语 种:简体中文
编辑器:D5-7
平 台:Win9x,Win2k/NT,WinXP
作品源代码: -
软件或演示: -
代码大小: -
软件大小: -
无图片
unit Main;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, FileCtrl, ActnList, ExtCtrls, ComCtrls;
type
TMain_Form = class(TForm)
Label1: TLabel;
SpdButn_selectsource: TSpeedButton;
SpdButn_selectecausefile: TSpeedButton;
Label2: TLabel;
Label3: TLabel;
Butn_Ok: TButton;
Butn_Exit: TButton;
Edit_SourceFileName: TEdit;
Edit_TargetDircetory: TEdit;
ActionList1: TActionList;
ExitAction: TAction;
Label6: TLabel;
Edit_PartitionFileSize: TEdit;
Label7: TLabel;
GrouPBox_Size: TGroupBox;
RadBtn_Mb: TRadioButton;
RadBtn_Kb: TRadioButton;
procedure SpdButn_selectsourceClick(Sender: TObject);
procedure Butn_ExitClick(Sender: TObject);
procedure SpdButn_selectecausefileClick(Sender: TObject);
procedure Edit_TargetDircetoryMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure ExitActionExecute(Sender: TObject);
procedure Butn_OkClick(Sender: TObject);
procedure Edit_SourceFileNameMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure RadBtn_KbClick(Sender: TObject);
procedure RadBtn_MbClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
sourceF, TargetF: file;
TargetFileDircetory, SourceFileDircetory, TargetFileC, SourceDircetory, SourceDircetorFind: string;
ReadBufSize: integer;
Buf: array[1..10485760] of Char;
WriteResult, ReadResult, TargetDirectorySize, SecondWriteResult: integer;
FileSe, HadWriteSize: longint; {文件长度}
A, B: Boolean;
SearchResult: TSearchRec;
end;
var
Main_Form: TMain_Form;
implementation
{$R *.dfm}
procedure TMain_Form.SpdButn_selectsourceClick(Sender: TObject); //选择源目录
begin
SelectDirectory('请选择要复制的目录', ', SourceDircetory);
Edit_SourceFileName.Text := SourceDircetory;
end;
procedure TMain_Form.Butn_ExitClick(Sender: TObject);
begin
close; //退出程序
end;
procedure TMain_Form.SpdButn_selectecausefileClick(Sender: TObject);
var //选择目标目录
aPath: string;
begin
aPath := ';
if SelectDirectory('选择保存目录:', 'E:\testfile', aPath) then
Edit_TargetDircetory.Text := aPath;
end;
procedure TMain_Form.Edit_SourceFileNameMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
Edit_SourceFileName.Hint := Edit_SourceFileName.Text;
end;
procedure TMain_Form.Edit_TargetDircetoryMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
Edit_TargetDircetory.Hint := Edit_TargetDircetory.Text; //Edit2的Hint事件
end;
procedure TMain_Form.ExitActionExecute(Sender: TObject);
begin
close; //退出程序
end;
procedure TMain_Form.Butn_OkClick(Sender: TObject); //开始拷贝按钮
var
FileAttrs, I: integer;
begin
A := True;
b := A;
HadWriteSize := 0;
I := (-1);
if DirectoryExists(Edit_SourceFileName.text) = false then
begin
ShowMessage('指定的文件夹不存在请正确的选择文件夹');
Edit_SourceFileName.text := ';
A := false;
Edit_SourceFileName.SetFocus;
end; //end if
if DirectoryExists(Edit_TargetDircetory.text) = false then
begin
ShowMessage('所选的文件夹不存在,请重新选择');
Edit_TargetDircetory.text := ';
B := false;
Edit_TargetDircetory.SetFocus;
end; {end if}
try
StrToInt(Edit_PartitionFileSize.Text);
except
showmessage('你输入的数字不正确,请正确输入!');
B := false;
end;
FileAttrs := faReadOnly faHidden faSysFile faArchive; //确定要复制文件类型
if (A = true) and (B = true) then
begin
SourceDircetory := Edit_SourceFileName.Text;
if RadBtn_Mb.Checked then //确定一下要分割多大的文件
ReadBufSize := (StrToInt(Edit_PartitionFileSize.Text)) * 1048576
else
ReadBufSize := (StrToInt(Edit_PartitionFileSize.Text)) * 1024;
end; {end if} //确定结束
SourceDircetorFind := (SourceDircetory '\*.*');
TargetDirectorySize := Length(Edit_TargetDircetory.Text);
TargetFileDircetory := Edit_TargetDircetory.Text; {确认下目标路径名}
Delete(TargetFileDircetory, TargetDirectorySize, 1);
if (TargetFileDircetory '\') = Edit_TargetDircetory.Text then
begin {begin if}
TargetFileDircetory := (Edit_TargetDircetory.Text);
end {end if}
else
begin
TargetFileDircetory := (Edit_TargetDircetory.Text '\');
end; {end else}
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




