关于文件复制的程序代码

关于文件复制的程序代码,第1张

关于文件复制的程序代码,第2张

这是一个关于文件复制的例程。希望有人会用,不用摸索。

#包括
#包括


bool force存在;
const bufsize = 409600;//基本单位是400K

//-
void _ _ fastcall t form 1::form create(to object * Sender)
{
edit 1-> Text = extract file path(ParamStr(0));
}
///-
void _ _ fastcall t form 1::button 1 click(to object * Sender)
{
if(open dialog 1-> Execute())
{
an signing fFile = open dialog 1-> FileName;
ansi string tFile = edit 1-> Text+extract filename(fFile);
if (copyfile (ffile,tfile))
{

复制成功...
}
else {
force exist = false;
delete file(tFile);
}
}
}
///-
bool t form 1::copy file(从文件分配,向文件分配)
{
bool result(false);
FILE *FromF,* ToF;
int NumRead,NumWritten
/* BUFSIZ在stdio . h */
char buf[bufsize]中定义;

screen-> Cursor = Cr hourglass;
ToF = fopen(ToFile.c_str()," WB ");
FromF = fopen(from file . c _ str()," Rb ");
try
{
start time = Now();
struct stat stat buf;
/*获取有关文件*/
fstat(fileno(FromF),&statbuf)的信息;
int mod val = stat buf . ST _ size % bufsize;
int MaxVal = statbuf . ST _ size/bufsize;
if(ModVal)maxval++;
progress bar 1-> Max = MaxVal;
float fSize = stat buf . ST _ size;
TVarRec args[2] = {0,fSize };
LBL filesize--> caption = format("文件大小:%。*n字节”,args,1);
LBL start time--> Caption = " start time:"+format datetime(" hh:nn:ss ",start time);

   ForceExist = false;
   ProgressBar1->Position = 0;
   do
   {
   if (ProgressBar1->PositionPosition + 1);
     }
   else if (ModVal) {//当剩余的数据不足400K时,需作特殊处理...
   char *Smallbuf;
   Smallbuf = (char *)SysGetMem(ModVal);
   NumRead = fread(Smallbuf, ModVal, 1, FromF); // read the data
   NumWritten = fwrite(Smallbuf, ModVal, 1, ToF); // Write the data
   fSize += ModVal;
   SysFreeMem(Smallbuf);
   NumRead = 0;
   }
   ProgressBar1->Position++;
   TVarRec args[2] = {0,fSize};
    lblFileTrans->Caption = Format("已经复制: %.*n字节", args, 1);
   lblElapseTime->Caption = "已用时间: "+FormatDateTime("hh:nn:ss",Now()-StartTime);
   Application->ProcessMessages();
   }
  while (!ForceExist && (NumRead!=0 || NumRead==NumWritten));
   ProgressBar1->Position++;
   fclose(ToF);
   fclose(FromF);
   result = !ForceExist;
   }
   catch(...)
   {
   fclose(ToF);
   fclose(FromF);
   MessageDlg("在复制文件时出现错误,未能完成操作。", mtWarning, TMsgDlgButtons() Cursor = crDefault;
   return result;
  }
  //---------------------------------------------------------------------------
  void __fastcall TForm1::BtnStopClick(TObject *Sender)
  {
  if (MessageDlg("正在复制文件,是否要取消操作?", mtWarning, TMsgDlgButtons()

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 关于文件复制的程序代码

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情