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 + -
显示快捷键?