CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
英特尔®游戏设计大赛100美元现金周周送 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  Windows SDK/API

windows下文件复制和移动的原理是怎么样的呀

楼主aaronjin(真的没有人)2003-09-03 18:36:59 在 Delphi / Windows SDK/API 提问

windows下文件复制和移动的原理是怎么样的呀  
  请专家们赐教 问题点数:0、回复次数:4Top

1 楼huojiehai(海天子)回复于 2003-09-03 18:49:56 得分 0

复制:拷贝原文件内容,再按原文件设置相应的文件信息(如:创建时间。。。)  
   
  移动:先是复制,再删除原文件Top

2 楼aaronjin(真的没有人)回复于 2003-09-03 18:51:21 得分 0

具体是怎么实现的  
  Top

3 楼huojiehai(海天子)回复于 2003-09-03 19:01:25 得分 0

CopyFile  
   
  http://expert.csdn.net/Expert/topic/1656/1656068.xml?temp=6.054324E-02  
   
  中有很多Top

4 楼xiangwangz(<*敝屣荣华 浮云生死 此身何惧*>)回复于 2003-09-04 09:21:47 得分 0

{This   way   uses   a   File   stream.}  
  Procedure   FileCopy(   Const   sourcefilename,   targetfilename:   String   );  
  Var  
      S,   T:   TFileStream;  
  Begin  
      S   :=   TFileStream.Create(   sourcefilename,   fmOpenRead   );  
   
      try  
          T   :=   TFileStream.Create(   targetfilename,  
                                                            fmOpenWrite   or   fmCreate   );  
          try  
              T.CopyFrom(S,   S.Size   )   ;  
          finally  
              T.Free;  
          end;  
      finally  
          S.Free;  
      end;  
  End;  
   
  {This   way   uses   memory   blocks   for   read/write.}  
  procedure   FileCopy(const   FromFile,   ToFile:   string);  
    var  
      FromF,   ToF:   file;  
      NumRead,   NumWritten:   Word;  
      Buf:   array[1..2048]   of   Char;  
  begin  
      AssignFile(FromF,   FromFile);  
      Reset(FromF,   1);     {   Record   size   =   1   }  
   
      AssignFile(ToF,   ToFile);   {   Open   output   file   }  
      Rewrite(ToF,   1);     {   Record   size   =   1   }  
      repeat  
          BlockRead(FromF,   Buf,   SizeOf(Buf),   NumRead);  
          BlockWrite(ToF,   Buf,   NumRead,   NumWritten);  
      until   (NumRead   =   0)   or   (NumWritten   <>   NumRead);  
      CloseFile(FromF);  
      CloseFile(ToF);  
  end;  
   
  {This   one   uses   LZCopy,   which   USES   LZExpand.}  
  procedure   CopyFile(FromFileName,   ToFileName:   string);  
  var  
      FromFile,   ToFile:   File;  
  begin  
      AssignFile(FromFile,   FromFileName);   {   Assign   FromFile   to   FromFileName   }  
   
      AssignFile(ToFile,   ToFileName);           {   Assign   ToFile   to   ToFileName   }  
      Reset(FromFile);                                         {   Open   file   for   input   }  
      try  
          Rewrite(ToFile);                                     {   Create   file   for   output   }  
          try  
              {   copy   the   file   an   if   a   negative   value   is   returned   }  
              {   raise   an   exception   }  
              if   LZCopy(TFileRec(FromFile).Handle,   TFileRec(ToFile).Handle)   <   0  
                  then  
                  raise   EInOutError.Create('Error   using   LZCopy')  
          finally  
              CloseFile(ToFile);     {   Close   ToFile   }  
   
          end;  
      finally  
          CloseFile(FromFile);     {   Close   FromFile   }  
      end;  
  end;  
  Top

相关问题

  • 文件复制
  • 文件复制
  • 文件的复制
  • 复制文件夹
  • 复制文件夹!
  • Windows 2000 Server 能不能限制工作站复制文件?
  • 用api复制文件
  • 文件复制问题!!
  • 文件复制问题
  • 怎么复制文件?

关键词

  • 文件
  • 移动
  • tofile
  • fromfile
  • fromf
  • tof
  • fromfilename
  • tofilename
  • assignfile
  • tfilestream

得分解答快速导航

  • 帖主:aaronjin

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo