ftpunit.cpp
来自「著名的SecureBlackBox控件完整源码」· C++ 代码 · 共 550 行 · 第 1/2 页
CPP
550 行
}
catch(Exception &e)
{
Log(e.Message, true);
}
}
else
Log(sNotConnected, true);
}
//---------------------------------------------------------------------------
void __fastcall TFTPForm::FormDestroy(TObject *Sender)
{
FinalizeApp();
}
//---------------------------------------------------------------------------
void __fastcall TFTPForm::FormCloseQuery(TObject *Sender, bool &CanClose)
{
Disconnect();
CanClose = true;
}
//---------------------------------------------------------------------------
void __fastcall TFTPForm::btnCWDClick(TObject *Sender)
{
if (FClient->Active)
{
if (editCmdParam->Text == "")
ShowMessage(sNoParameter);
else
{
try
{
Log("Changing directory...", false);
FClient->Cwd(Trim(editCmdParam->Text));
Log((AnsiString)"Directory changed.\nCurrent directory is: " + FClient->GetCurrentDir(), false);
}
catch(Exception &e)
{
Log(e.Message, true);
}
}
}
else
Log(sNotConnected, true);
}
//---------------------------------------------------------------------------
void __fastcall TFTPForm::btnCDUpClick(TObject *Sender)
{
if (FClient->Active)
{
try
{
Log("Changing directory...", false);
FClient->CDUp();
Log((AnsiString)"Directory changed.\nCurrent directory is: " + FClient->GetCurrentDir(), false);
}
catch(Exception &e)
{
Log(e.Message, true);
}
}
else
Log(sNotConnected, true);
}
//---------------------------------------------------------------------------
void __fastcall TFTPForm::mnuAboutClick(TObject *Sender)
{
ShowAbout();
}
//---------------------------------------------------------------------------
void __fastcall TFTPForm::FormCreate(TObject *Sender)
{
InitializeApp();
}
//---------------------------------------------------------------------------
void __fastcall TFTPForm::btnListClick(TObject *Sender)
{
if (FClient->Active)
{
try
{
Log("Retrieving directory contents ...", false);
FClient->GetFileList();
Log("Directory contents retrieved", false);
}
catch(Exception &e)
{
Log(e.Message, true);
}
}
else
Log(sNotConnected, true);
}
//---------------------------------------------------------------------------
void __fastcall TFTPForm::ClientTextDataLine(TObject* Sender, const AnsiString TextLine)
{
// memoOutput->Text = memoOutput->Text + TextLine + "\n";
memoOutput->Lines->Add(TextLine);
}
//---------------------------------------------------------------------------
void __fastcall TFTPForm::btnMKDClick(TObject *Sender)
{
if (FClient->Active)
{
if (editCmdParam->Text == "")
ShowMessage(sNoParameter);
else
{
try
{
Log("Creating directory...", false);
FClient->MakeDir(Trim(editCmdParam->Text));
Log("Directory created.", false);
}
catch(Exception &e)
{
Log(e.Message, true);
}
}
}
else
Log(sNotConnected, true);
}
//---------------------------------------------------------------------------
void __fastcall TFTPForm::btnRMDClick(TObject *Sender)
{
if (FClient->Active)
{
if (editCmdParam->Text == "")
ShowMessage(sNoParameter);
else
{
try
{
Log("Removing directory...", false);
FClient->RemoveDir(Trim(editCmdParam->Text));
Log("Directory removed.", false);
}
catch(Exception &e)
{
Log(e.Message, true);
}
}
}
else
Log(sNotConnected, true);
}
//---------------------------------------------------------------------------
void __fastcall TFTPForm::btnDownloadClick(TObject *Sender)
{
if (FClient->Active)
{
if (editCmdParam->Text == "")
ShowMessage(sNoParameter);
else
{
dlgSave->FileName = Sbutils::ExtractFileName(editCmdParam->Text);
if (dlgSave->Execute())
{
try
{
TStream* FDataStream = new TFileStream(dlgSave->FileName, fmCreate | fmShareDenyWrite);
try
{
Log("Recieving file...", false);
FClient->Receive(Trim(editCmdParam->Text), FDataStream, 0, 0);
Log("File received.", false);
}
__finally
{
delete FDataStream;
}
}
catch(Exception &e)
{
Log(e.Message, true);
}
}
}
}
else
Log(sNotConnected, true);
}
//---------------------------------------------------------------------------
void __fastcall TFTPForm::btnUploadClick(TObject *Sender)
{
if (FClient->Active)
{
if (editCmdParam->Text == "")
ShowMessage(sNoParameter);
else
{
dlgOpen->FileName = Sbutils::ExtractFileName(editCmdParam->Text);
if (dlgOpen->Execute())
{
try
{
TStream* FDataStream = new TFileStream(dlgOpen->FileName, fmOpenRead | fmShareDenyWrite);
try
{
Log("Sending file...", false);
FClient->Send(FDataStream, Trim(editCmdParam->Text), 0, FDataStream->Size - 1, false, 0);
Log("File sent.", false);
}
__finally
{
delete FDataStream;
}
}
catch(Exception &e)
{
Log(e.Message, true);
}
}
}
}
else
Log(sNotConnected, true);
}
//---------------------------------------------------------------------------
void __fastcall TFTPForm::btnDeleteClick(TObject *Sender)
{
if (FClient->Active)
{
if (editCmdParam->Text == "")
ShowMessage(sNoParameter);
else
{
try
{
Log("Deleting file...", false);
FClient->Delete(Trim(editCmdParam->Text));
Log("File deleted.", false);
}
catch(Exception &e)
{
Log(e.Message, true);
}
}
}
else
Log(sNotConnected, true);
}
//---------------------------------------------------------------------------
void __fastcall TFTPForm::ClientControlReceive(TObject* Sender, const AnsiString TextLine)
{
// memoOutput->Text = memoOutput->Text + "<<<" + TextLine + "\n";
memoOutput->Lines->Add((AnsiString)"<<<" + TextLine);
}
//---------------------------------------------------------------------------
void __fastcall TFTPForm::ClientControlSend(TObject* Sender, const AnsiString TextLine)
{
// memoOutput->Text = memoOutput->Text + ">>>" + TextLine + "\n";
memoOutput->Lines->Add((AnsiString)">>>" + TextLine);
}
//---------------------------------------------------------------------------
void __fastcall TFTPForm::ClientSSLError(TObject* Sender, int ErrorCode, bool Fatal, bool Remote)
{
AnsiString S;
if (Fatal)
S = "Fatal ";
else
S = "";
if (Remote)
S = S + "Remote ";
else
S = S + "Local ";
S = S + "Error " + IntToStr(ErrorCode);
Log(S, true);
Log("If you are getting error 75778, this can mean that the remote server doesn't support specified SSL/TLS version", true);
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?