关于文件的问题?(100分)

  • 主题发起人 主题发起人 QianQi
  • 开始时间 开始时间
Q

QianQi

Unregistered / Unconfirmed
GUEST, unregistred user!
如何通过代码查找一文件夹,并将此文件夹内的文件列表出来,然后复制一分用户所选择
的文件,将这些文件备份起来?
最好能有详细的代码?[?]
多谢了?
 
这种例子太多了,dephi6的Demos终就有,查查吧.
 
用FindFirst查找第一个文件,FindNext来查下一条,看看帮助吧,很详细的。
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=649749
http://www.delphibbs.com/delphibbs/dispq.asp?lid=638292
......
老大,检索一下吧,很多了
 
hubdog 上的 ;贴过来用

---- 1、拷贝目录

---- 为了能拷贝目录下带有子目录的情况,先定义一个辅助的拷贝函数,它是递归执行的,直到把目录下的所有文件和子目录都拷贝完。

---- 1.1拷贝目录的递归辅助函数:DoCopyDir

function DoCopyDir(sDirName:String;
sToDirName:String):Boolean;
var
; ;hFindFile:Cardinal;
; ;t,tfile:String;
; ;sCurDir:String[255];
; ;FindFileData:WIN32_FIND_DATA;
begin
; ;//先保存当前目录
; ;sCurDir:=GetCurrentDir;
; ;ChDir(sDirName);
; ;hFindFile:=FindFirstFile('*.*',FindFileData);
; ;if hFindFile< >INVALID_HANDLE_VALUE then
; ;begin
; ; ; ; if not DirectoryExists(sToDirName) then
; ; ; ; ; ;ForceDirectories(sToDirName);
; ; ; ; repeat
; ; ; ; ; ; ; tfile:=FindFileData.cFileName;
; ; ; ; ; ; ; if (tfile='.') or (tfile='..') then
; ; ; ; ; ; ; ; ;Continue;
; ; ; ; ; ; ; if FindFileData.dwFileAttributes=
; ; ; ; ; ; ; FILE_ATTRIBUTE_DIRECTORY then
; ; ; ; ; ; ; begin
; ; ; ; ; ; ; ; ; ;t:=sToDirName+'/'+tfile;
; ; ; ; ; ; ; ; ; ;if ;not DirectoryExists(t) then
; ; ; ; ; ; ; ; ; ; ; ;ForceDirectories(t);
; ; ; ; ; ; ; ; ; ;if sDirName[Length(sDirName)]< >'/' then
; ; ; ; ; ; ; ; ; ; ; DoCopyDir(sDirName+'/'+tfile,t)
; ; ; ; ; ; ; ; ; ;else
; ; ; ; ; ; ; ; ; ; ; DoCopyDir(sDirName+tfile,sToDirName+tfile);
; ; ; ; ; ; ; end
; ; ; ; ; ; ; else
; ; ; ; ; ; ; begin
; ; ; ; ; ; ; ; ; ;t:=sToDirName+'/'+tFile;
; ; ; ; ; ; ; ; ; ;CopyFile(PChar(tfile),PChar(t),True);
; ; ; ; ; ; ; end;
; ; ; ; until FindNextFile(hFindFile,FindFileData)=false;
; ; ; ; FindClose(hFindFile);
; ;end
; ;else
; ;begin
; ; ; ; ChDir(sCurDir);
; ; ; ; result:=false;
; ; ; ; exit;
; ;end;
; ;//回到原来的目录下
; ;ChDir(sCurDir);
; ;result:=true;
end;

---- 1.2拷贝目录的函数:CopyDir

function CopyDir(sDirName:String;
sToDirName:string):Boolean;
begin
; ; ; if Length(sDirName)< =0 then
; ; ; ; ;exit;
; ; ; //拷贝...
; ; ; Result:=DoCopyDir(sDirName,sToDirName);
end;
 
多人接受答案了。
 
后退
顶部