S
sl220
Unregistered / Unconfirmed
GUEST, unregistred user!
请教一下各位,我用了一个拷贝目录函数,函数如下:<br> sCurDir:=GetCurrentDir;<br> ChDir(sDirName);<br> hFindFile:=FindFirstfile('*.*',FindFileData);<br> if hFindFile<>INVALID_HANDLE_VALUE then<br> begin<br> if not DirectoryExists(sToDirName) then<br> ForceDirectories(sToDirName); <br> repeat<br> tfile:=FindFileData.cFileName; <br> if (tfile='.') or (tfile='..')then<br> Continue;<br> if (FindFileData.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) =FILE_ATTRIBUTE_DIRECTORY then<br> begin<br> t:=sToDirName+'/'+tfile;<br> if not DirectoryExists(t) then<br> ForceDirectories(t); <br> if sDirName[Length(sDirName)]<>'/' then<br> begin<br> DoCopyDir(sDirName+'/'+tfile,t);<br> Attrs:=FileGetAttr(sDirName+'/'+tfile);<br> FileSetAttr(t,Attrs);<br> end<br> else<br> begin<br> DoCopyDir(sDirName+tfile,sToDirName+tfile);<br> Attrs:=FileGetAttr(sDirName+tfile);<br> FileSetAttr(t,Attrs);<br> end;<br> end<br> else<br> begin<br> t:=sToDirName+'/'+tFile;<br> CopyFile(PChar(tfile),PChar(t),True);<br> end;<br> until FindNextFile(hFindFile,FindFileData)=false;<br> end<br> else<br> begin<br> ChDir(sCurDir);<br> result:=false;<br> exit;<br> end;<br> //回到原来的目录下<br> ChDir(sCurDir);<br> result:=true;<br> end;<br>我的目的是把整个硬盘的文件拷贝到一个文件夹中,例如把C:/考被到d:/win98,但是发现一个问题,用了这个函数,如果拷贝分区上的某个文件夹没有任何问题,但是如果拷贝整个分区就不可以,程序会出错,希望高手能够指点一下,谢谢~~