⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 010.htm

📁 Delphi书籍--Delphi网上教程
💻 HTM
📖 第 1 页 / 共 4 页
字号:
&nbsp;&nbsp;FCurDir&nbsp;:=&nbsp;GetCurrentDirectory;&nbsp;&nbsp;<br>
&nbsp;&nbsp;if&nbsp;Assigned(FOnNewDir)&nbsp;then&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;FOnNewDir(Self);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
end;&nbsp;&nbsp;<br>
&nbsp;&nbsp;<br>
function&nbsp;GetDots(NumDots:&nbsp;Integer):&nbsp;string;&nbsp;&nbsp;<br>
var&nbsp;&nbsp;<br>
&nbsp;&nbsp;S:&nbsp;string;&nbsp;&nbsp;<br>
&nbsp;&nbsp;i:&nbsp;Integer;&nbsp;&nbsp;<br>
begin&nbsp;&nbsp;<br>
&nbsp;&nbsp;S&nbsp;:=&nbsp;'';&nbsp;&nbsp;<br>
&nbsp;&nbsp;for&nbsp;i&nbsp;:=&nbsp;1&nbsp;to&nbsp;NumDots&nbsp;do&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;S&nbsp;:=&nbsp;S&nbsp;+&nbsp;'&nbsp;';&nbsp;&nbsp;<br>
&nbsp;&nbsp;Result&nbsp;:=&nbsp;S;&nbsp;&nbsp;<br>
end;&nbsp;&nbsp;<br>
&nbsp;&nbsp;<br>
function&nbsp;GetFindDataStr(FindData:&nbsp;TWin32FindData):&nbsp;string;&nbsp;&nbsp;<br>
var&nbsp;&nbsp;<br>
&nbsp;&nbsp;S:&nbsp;string;&nbsp;&nbsp;<br>
&nbsp;&nbsp;Temp:&nbsp;string;&nbsp;&nbsp;<br>
begin&nbsp;&nbsp;<br>
&nbsp;&nbsp;case&nbsp;FindData.dwFileAttributes&nbsp;of&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;FILE_ATTRIBUTE_ARCHIVE:&nbsp;S&nbsp;:=&nbsp;'A';&nbsp;&nbsp;<br>
//&nbsp;&nbsp;&nbsp;&nbsp;FILE_ATTRIBUTE_COMPRESSED:&nbsp;S&nbsp;:=&nbsp;'C';&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;FILE_ATTRIBUTE_DIRECTORY:&nbsp;S&nbsp;:=&nbsp;'D';&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;FILE_ATTRIBUTE_HIDDEN:&nbsp;S&nbsp;:=&nbsp;'H';&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;FILE_ATTRIBUTE_NORMAL:&nbsp;S&nbsp;:=&nbsp;'N';&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;FILE_ATTRIBUTE_READONLY:&nbsp;S&nbsp;:=&nbsp;'R';&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;FILE_ATTRIBUTE_SYSTEM:&nbsp;S&nbsp;:=&nbsp;'S';&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;FILE_ATTRIBUTE_TEMPORARY:&nbsp;S&nbsp;:=&nbsp;'T';&nbsp;&nbsp;<br>
&nbsp;&nbsp;else&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;S&nbsp;:=&nbsp;IntToStr(FindData.dwFileAttributes);&nbsp;&nbsp;<br>
&nbsp;&nbsp;end;&nbsp;&nbsp;<br>
&nbsp;&nbsp;S&nbsp;:=&nbsp;S&nbsp;+&nbsp;GetDots(75);&nbsp;&nbsp;<br>
&nbsp;&nbsp;Move(FindData.CFilename[0],&nbsp;S[6],&nbsp;StrLen(FindData.CFileName));&nbsp;&nbsp;<br>
&nbsp;&nbsp;Temp&nbsp;:=&nbsp;IntToStr(FindData.nFileSizeLow);&nbsp;&nbsp;<br>
&nbsp;&nbsp;Move(Temp[1],&nbsp;S[25],&nbsp;Length(Temp));&nbsp;&nbsp;<br>
&nbsp;&nbsp;Result&nbsp;:=&nbsp;S;&nbsp;&nbsp;<br>
end;&nbsp;&nbsp;<br>
&nbsp;&nbsp;<br>
function&nbsp;TMyFtp.FindFiles:&nbsp;TStringList;&nbsp;&nbsp;<br>
var&nbsp;&nbsp;<br>
&nbsp;&nbsp;FindData:&nbsp;TWin32FindData;&nbsp;&nbsp;<br>
&nbsp;&nbsp;FindHandle:&nbsp;HInternet;&nbsp;&nbsp;<br>
begin&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;FindHandle&nbsp;:=&nbsp;FtpFindFirstFile(FFtphandle,&nbsp;'*.*',&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FindData,&nbsp;0,&nbsp;0);&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;if&nbsp;FindHandle&nbsp;=&nbsp;nil&nbsp;then&nbsp;begin&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Result&nbsp;:=&nbsp;nil;&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit;&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;end;&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;FCurFiles.Clear;&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;FCurFiles.Add(GetFindDataStr(FindData));&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;while&nbsp;InternetFindnextFile(FindHandle,&nbsp;@FindData)&nbsp;do&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FCurFiles.Add(GetFindDataStr(FindData));&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;InternetCloseHandle(Findhandle);&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;GetCurrentDirectory;&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;Result&nbsp;:=&nbsp;FCurFiles;&nbsp;&nbsp;<br>
end;&nbsp;&nbsp;<br>
&nbsp;&nbsp;<br>
function&nbsp;TMyFtp.CustomToFileName(S:&nbsp;string):&nbsp;string;&nbsp;&nbsp;<br>
const&nbsp;&nbsp;<br>
&nbsp;&nbsp;PreSize&nbsp;=&nbsp;6;&nbsp;&nbsp;<br>
var&nbsp;&nbsp;<br>
&nbsp;&nbsp;Temp:&nbsp;string;&nbsp;&nbsp;<br>
&nbsp;&nbsp;TempSize:&nbsp;Integer;&nbsp;&nbsp;<br>
begin&nbsp;&nbsp;<br>
&nbsp;&nbsp;Temp&nbsp;:=&nbsp;'';&nbsp;&nbsp;<br>
&nbsp;&nbsp;TempSize&nbsp;:=&nbsp;Length(S)&nbsp;-&nbsp;PreSize;&nbsp;&nbsp;&nbsp;<br>
&nbsp;&nbsp;SetLength(Temp,&nbsp;TempSize);&nbsp;&nbsp;<br>
&nbsp;&nbsp;Move(S[PreSize],&nbsp;Temp[1],&nbsp;TempSize);&nbsp;&nbsp;<br>
&nbsp;&nbsp;Temp&nbsp;:=&nbsp;GetFirstToken(Temp,&nbsp;'&nbsp;');&nbsp;&nbsp;<br>
&nbsp;&nbsp;Result&nbsp;:=&nbsp;Temp;&nbsp;&nbsp;<br>
end;&nbsp;&nbsp;<br>
&nbsp;&nbsp;<br>
function&nbsp;TMyFtp.BackOneDir:&nbsp;Boolean;&nbsp;&nbsp;<br>
var&nbsp;&nbsp;<br>
&nbsp;&nbsp;S:&nbsp;string;&nbsp;&nbsp;<br>
begin&nbsp;&nbsp;<br>
&nbsp;&nbsp;S&nbsp;:=&nbsp;FCurDir;&nbsp;&nbsp;<br>
&nbsp;&nbsp;S&nbsp;:=&nbsp;StripLastToken(S,&nbsp;'/');&nbsp;&nbsp;<br>
&nbsp;&nbsp;if&nbsp;S&nbsp;=&nbsp;'/'&nbsp;then&nbsp;begin&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;Result&nbsp;:=&nbsp;False;&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;Exit;&nbsp;&nbsp;<br>
&nbsp;&nbsp;end;&nbsp;&nbsp;<br>
&nbsp;&nbsp;<br>
&nbsp;&nbsp;if&nbsp;S&nbsp;&lt;&gt;&nbsp;''&nbsp;then&nbsp;begin&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;ChangeDirExact(S);&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;Result&nbsp;:=&nbsp;True;&nbsp;&nbsp;<br>
&nbsp;&nbsp;end&nbsp;else&nbsp;begin&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;ChangeDirExact('/');&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;Result&nbsp;:=&nbsp;True;&nbsp;&nbsp;<br>
&nbsp;&nbsp;end;&nbsp;&nbsp;<br>
&nbsp;&nbsp;<br>
end;&nbsp;&nbsp;<br>
&nbsp;&nbsp;<br>
//&nbsp;Changes&nbsp;to&nbsp;specific&nbsp;directory&nbsp;in&nbsp;S&nbsp;&nbsp;<br>
function&nbsp;TMyFtp.ChangeDirExact(S:&nbsp;string):&nbsp;Boolean;&nbsp;&nbsp;<br>
begin&nbsp;&nbsp;<br>
&nbsp;&nbsp;if&nbsp;S&nbsp;&lt;&gt;&nbsp;''&nbsp;then&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;FtpSetCurrentDirectory(FFTPHandle,&nbsp;PChar(S));&nbsp;&nbsp;<br>
&nbsp;&nbsp;Result&nbsp;:=&nbsp;True;&nbsp;&nbsp;<br>
&nbsp;&nbsp;FindFiles;&nbsp;&nbsp;<br>
&nbsp;&nbsp;SetUpNewDir;&nbsp;&nbsp;<br>
end;&nbsp;&nbsp;<br>
&nbsp;&nbsp;<br>
//&nbsp;Assumes&nbsp;S&nbsp;has&nbsp;been&nbsp;returned&nbsp;by&nbsp;GetFindDataString;&nbsp;&nbsp;<br>
function&nbsp;TMyFtp.ChangeDirCustom(S:&nbsp;string):&nbsp;Boolean;&nbsp;&nbsp;<br>
begin&nbsp;&nbsp;<br>
&nbsp;&nbsp;S&nbsp;:=&nbsp;CustomToFileName(S);&nbsp;&nbsp;<br>
&nbsp;&nbsp;if&nbsp;S&nbsp;&lt;&gt;&nbsp;''&nbsp;then&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;FtpSetCurrentDirectory(FFTPHandle,&nbsp;PChar(S));&nbsp;&nbsp;<br>
&nbsp;&nbsp;Result&nbsp;:=&nbsp;True;&nbsp;&nbsp;<br>
&nbsp;&nbsp;FindFiles;&nbsp;&nbsp;<br>
&nbsp;&nbsp;SetUpNewDir;&nbsp;&nbsp;<br>
end;&nbsp;&nbsp;<br>
&nbsp;&nbsp;<br>
function&nbsp;TMyFtp.GetFile(FTPFile,&nbsp;NewFile:&nbsp;string):&nbsp;Boolean;&nbsp;&nbsp;<br>
begin&nbsp;&nbsp;<br>
&nbsp;&nbsp;Result&nbsp;:=&nbsp;FtpGetFile(FFTPHandle,&nbsp;PChar(FTPFile),&nbsp;PChar(NewFile),&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;False,&nbsp;File_Attribute_Normal,&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ftp_Transfer_Type_Binary,&nbsp;0);&nbsp;&nbsp;<br>
end;&nbsp;&nbsp;<br>
&nbsp;&nbsp;<br>
function&nbsp;TMyFtp.SendFile1(FTPFile,&nbsp;NewFile:&nbsp;string):&nbsp;Boolean;&nbsp;&nbsp;<br>
const&nbsp;&nbsp;<br>
&nbsp;&nbsp;Size:DWord&nbsp;=&nbsp;3000;&nbsp;&nbsp;<br>
var&nbsp;&nbsp;<br>
&nbsp;&nbsp;Transfer:&nbsp;Bool;&nbsp;&nbsp;<br>
&nbsp;&nbsp;Error:&nbsp;DWord;&nbsp;&nbsp;<br>
&nbsp;&nbsp;S:&nbsp;string;&nbsp;&nbsp;<br>
begin&nbsp;&nbsp;<br>
&nbsp;&nbsp;Transfer&nbsp;:=&nbsp;FtpPutFile(FFTPHandle,&nbsp;PChar(FTPFile),&nbsp;&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PChar(NewFile),&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ftp_Transfer_Type_Binary,&nbsp;0);&nbsp;&nbsp;<br>
&nbsp;&nbsp;<br>
&nbsp;&nbsp;if&nbsp;not&nbsp;Transfer&nbsp;then&nbsp;begin&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;Error&nbsp;:=&nbsp;GetLastError;&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;ShowMessage(Format('Error&nbsp;Number:&nbsp;%d.&nbsp;Hex:&nbsp;%x',&nbsp;&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[Error,&nbsp;Error]));&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;SetLength(S,&nbsp;Size);&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;not&nbsp;InternetGetLastResponseInfo(Error,&nbsp;PChar(S),&nbsp;Size)&nbsp;then&nbsp;&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;begin&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Error&nbsp;:=&nbsp;GetLastError;&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ShowMessage(Format('Error&nbsp;Number:&nbsp;%d.&nbsp;Hex:&nbsp;%x',&nbsp;&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[Error,&nbsp;Error]));&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;end;&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;ShowMessage(Format('Error&nbsp;Number:&nbsp;%d.&nbsp;Hex:&nbsp;%x&nbsp;Info:&nbsp;%s',&nbsp;&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[Error,&nbsp;Error,&nbsp;S]));&nbsp;&nbsp;<br>
&nbsp;&nbsp;end&nbsp;else&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;ShowMessage('Success');&nbsp;&nbsp;<br>
&nbsp;&nbsp;Result&nbsp;:=&nbsp;Transfer;&nbsp;&nbsp;<br>
end;&nbsp;&nbsp;<br>
&nbsp;&nbsp;<br>
function&nbsp;TMyFtp.SendFile2(FTPFile,&nbsp;NewFile:&nbsp;string):&nbsp;Boolean;&nbsp;&nbsp;<br>
var&nbsp;&nbsp;<br>
&nbsp;&nbsp;FHandle:&nbsp;HInternet;&nbsp;&nbsp;<br>
begin&nbsp;&nbsp;<br>
&nbsp;&nbsp;FHandle&nbsp;:=&nbsp;&nbsp;FtpOpenFile(FFTPHandle,&nbsp;'sam.txt',&nbsp;GENERIC_READ,&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FTP_TRANSFER_TYPE_BINARY,&nbsp;0);&nbsp;&nbsp;<br>
&nbsp;&nbsp;if&nbsp;FHandle&nbsp;&lt;&gt;&nbsp;nil&nbsp;then&nbsp;&nbsp;<br>
&nbsp;&nbsp;InternetCloseHandle(FHandle)&nbsp;&nbsp;<br>
&nbsp;&nbsp;else&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;ShowMessage('Failed');&nbsp;&nbsp;<br>
&nbsp;&nbsp;Result&nbsp;:=&nbsp;True;&nbsp;&nbsp;<br>
end;&nbsp;&nbsp;<br>
&nbsp;&nbsp;<br>
end.&nbsp; </p>
<hr color="#EE9B73" size="1" width="94%">

</TD>

</TR>
</table>
</BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -