Меню сайта
Категории раздела
Простые примеры [34] |
OpenGL [4] |
Фрактал [9] |
Windows API [2] |
Консоль [12] |
ДРУЗЬЯ САЙТА
Вызвать мастера в Красноярске
8 983 207 5474
8 902 918 9334
8 933 332 3164
---------------------------------
Запчасти бытткхники
Радиодетали
Электрика
ЗАКЛАДКИ
Поиск
Статистика
Онлайн всего: 1
Гостей: 1
Пользователей: 0
Главная » Статьи » C++ Builder » Простые примеры |
C++ BUILDER XE2 INDY 10 IDFTP СОЗДАЁМ КЛИЕНТ
==================================== ========================================= //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Unit1.h" #include <IdAllFTPListParsers.hpp> //#include <IdFTPListParseUnix.hpp> //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender) { potok = new TMemoryStream; fl = false; } //--------------------------------------------------------------------------- void __fastcall TForm1::FormDestroy(TObject *Sender) { delete potok; } //--------------------------------------------------------------------------- void __fastcall TForm1::IdFTP1Work(TObject *ASender, TWorkMode AWorkMode, __int64 AWorkCount) { if( fl == true ){ ProgressBar1->Position = AWorkCount; } } //----------Наш метод перезаписывает ListView1----------------------------------------------------------------- void __fastcall TForm1::UpdateList(void) { IdFTP1->List( NULL, "", true ); ListView1->Items->Clear(); for( int i = 0; i < IdFTP1->DirectoryListing->Count; ++i ) { ListView1->Items->Add(); ListView1->Items->Item[i]->Caption = IdFTP1->DirectoryListing->Items[i]->FileName; ListView1->Items->Item[i]->SubItems->Add(IntToStr(IdFTP1->DirectoryListing->Items[i]->Size) ); ListView1->Items->Item[i]->SubItems->Add(IdFTP1->DirectoryListing->Items[i]->Data ); } } //---------Соединяемся с сервером------------------------------------------------------------------ void __fastcall TForm1::Button1Click(TObject *Sender) { if( IdFTP1->Connected() ) IdFTP1->Disconnect(); ListView1->Items->Clear(); IdFTP1->Host = LabeledEdit1->Text; IdFTP1->Port = StrToInt( LabeledEdit2->Text ); IdFTP1->Password = LabeledEdit3->Text; IdFTP1->Username = LabeledEdit4->Text; IdFTP1->Passive = true; IdFTP1->AutoLogin = true; //IdFTP1->TransferType = ftBinary; try { IdFTP1->Connect(); } catch(...) { //Application->MessageBox( L"Сервер не отвечает",L"Повторите ввод",MB_OK); ShowMessage( "Сервер не отвечает" ); if( IdFTP1->Connected() ) IdFTP1->Disconnect(); return; } Panel1->Enabled = true; ListView1->Enabled = true; UpdateList(); //перезапмсываем ListView1 } //------------Открыть директорию--------------------------------------------------------------- void __fastcall TForm1::ListView1DblClick(TObject *Sender) { if( ListView1->Selected != 0 ){ if( ! ListView1->Items->Item[ListView1->Selected->Index]->Caption.Pos(".") ){ IdFTP1->ChangeDir(ListView1->Items->Item[ListView1->Selected->Index]->Caption); UpdateList(); //перезапмсываем ListView1 } else ShowMessage( "Не Директория" ); } } //-----------В корень---------------------------------------------------------------- void __fastcall TForm1::Button4Click(TObject *Sender) { if( IdFTP1->Connected() ) { IdFTP1->ChangeDirUp() ; UpdateList(); //перезапмсываем ListView1 } } //----------Сохранить файл----------------------------------------------------------------- void __fastcall TForm1::N1Click(TObject *Sender) { if( ListView1->Selected != 0 ){ if( ListView1->Items->Item[ListView1->Selected->Index]->Caption.Pos(".") ){ SaveDialog1->FileName = ListView1->Items->Item[ListView1->Selected->Index]->Caption; if( SaveDialog1->Execute() ) { UnicodeString s = SaveDialog1->FileName; potok->Clear(); fl = true; ProgressBar1->Position = 0; ProgressBar1->Max = StrToInt( ListView1->Items->Item[ListView1->Selected->Index]->SubItems->Strings[0] ); IdFTP1->Get(ListView1->Items->Item[ListView1->Selected->Index]->Caption, potok, true); potok->SaveToFile( s ); fl = false; } }else ShowMessage( "Не Файл" ); } } //----------Создать Директорию----------------------------------------------------------------- void __fastcall TForm1::N2Click(TObject *Sender) { if( IdFTP1->Connected() ) { UnicodeString name = "pub"; if( ! InputQuery( "Имя Директории","Только инглиш", name ) ) return; else { IdFTP1->MakeDir( name );//создание директории UpdateList(); } //перезапмсываем ListView1 } } //----------Удалить Директорию----------------------------------------------------------------- void __fastcall TForm1::N3Click(TObject *Sender) { if( IdFTP1->Connected() && ListView1->Selected != 0 ) { if( ! ListView1->Items->Item[ListView1->Selected->Index]->Caption.Pos(".") ){ IdFTP1->RemoveDir(ListView1->Items->Item[ListView1->Selected->Index]->Caption ); UpdateList(); //перезапмсываем ListView1 } else ShowMessage( "Не Директория" ); } } //----------Удалить Файл----------------------------------------------------------------- void __fastcall TForm1::N4Click(TObject *Sender) { if( IdFTP1->Connected() && ListView1->Selected != 0 ) { if( ListView1->Items->Item[ListView1->Selected->Index]->Caption.Pos(".") ){ IdFTP1->Delete( ListView1->Items->Item[ListView1->Selected->Index]->Caption ); UpdateList(); //перезапмсываем ListView1 } else ShowMessage( "Не Файл" ); } } //------------Переименовать Файл--------------------------------------------------------------- void __fastcall TForm1::N5Click(TObject *Sender) { if( IdFTP1->Connected() && ListView1->Selected != 0 ) { if( ListView1->Items->Item[ListView1->Selected->Index]->Caption.Pos(".") ){ UnicodeString name = ListView1->Items->Item[ListView1->Selected->Index]->Caption ; if( ! InputQuery( "Имя Файла","Только инглиш", name ) ) return; else { IdFTP1->Rename( ListView1->Items->Item[ListView1->Selected->Index]->Caption, name ); UpdateList(); } //перезапмсываем ListView1 } else ShowMessage( "Не Файл" ); } } //-----------Загрузить Файл на сервер---------------------------------------------------------------- void __fastcall TForm1::N6Click(TObject *Sender) { if( IdFTP1->Connected() ) { if( OpenDialog1->Execute() ){ UnicodeString name = OpenDialog1->FileName; //////////////////////////////////////////////////////////////// //////Блок вычисляет разиер файла API функции ///// //////////////////////////////////////////////////////////////// HANDLE hFile; hFile = CreateFile( name.w_str() , GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); LONGLONG nFileLen = 0; if (hFile != INVALID_HANDLE_VALUE) { DWORD dwSizeHigh = 0, dwSizeLow = 0; dwSizeLow = GetFileSize(hFile, &dwSizeHigh); nFileLen = (dwSizeHigh * (MAXDWORD+1)) + dwSizeLow; CloseHandle( hFile ); } //////////////////////////////////////////////////////////////////// /// /////// //////////////////////////////////////////////////////////////////// ProgressBar1->Position = 0; ProgressBar1->Max = nFileLen ; //Размер файла fl = true; IdFTP1->Put( name, ExtractFileName( name ) , false, 0 ); fl = false; UpdateList(); //перезапмсываем ListView1 } } } //-----------Отключится от сервера---------------------------------------------------------------- void __fastcall TForm1::SpeedButton9Click(TObject *Sender) { if( IdFTP1->Connected() ) IdFTP1->Disconnect(); ListView1->Items->Clear(); Panel1->Enabled = false; ListView1->Enabled = false; ProgressBar1->Position = 0; } //--------------------------------------------------------------------------- //////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////// //--------------------------------------------------------------------------- #ifndef Unit1H #define Unit1H //--------------------------------------------------------------------------- #include <System.Classes.hpp> #include <Vcl.Controls.hpp> #include <Vcl.StdCtrls.hpp> #include <Vcl.Forms.hpp> #include <IdBaseComponent.hpp> #include <IdComponent.hpp> #include <IdExplicitTLSClientServerBase.hpp> #include <IdFTP.hpp> #include <IdTCPClient.hpp> #include <IdTCPConnection.hpp> #include <Vcl.ExtCtrls.hpp> #include <Vcl.Menus.hpp> #include <Vcl.Dialogs.hpp> #include <Vcl.ComCtrls.hpp> #include <IdAntiFreezeBase.hpp> #include <Vcl.IdAntiFreeze.hpp> #include <Vcl.Buttons.hpp> #include <memory> //#include <IdFTPListParseBase.hpp> //#include <IdFTPListParseUnix.hpp> //--------------------------------------------------------------------------- class TForm1 : public TForm { __published: // IDE-managed Components TIdFTP *IdFTP1; TLabeledEdit *LabeledEdit1; TLabeledEdit *LabeledEdit2; TLabeledEdit *LabeledEdit3; TLabeledEdit *LabeledEdit4; TPopupMenu *PopupMenu1; TMenuItem *N1; TSaveDialog *SaveDialog1; TProgressBar *ProgressBar1; TIdAntiFreeze *IdAntiFreeze1; TListView *ListView1; TMenuItem *N2; TMenuItem *N3; TMenuItem *N4; TMenuItem *N5; TMenuItem *N6; TOpenDialog *OpenDialog1; TSpeedButton *SpeedButton1; TPanel *Panel1; TPanel *Panel2; TPanel *Panel3; TSpeedButton *SpeedButton2; TSpeedButton *SpeedButton3; TSpeedButton *SpeedButton4; TSpeedButton *SpeedButton5; TSpeedButton *SpeedButton6; TSpeedButton *SpeedButton7; TSpeedButton *SpeedButton8; TSpeedButton *SpeedButton9; TSpeedButton *SpeedButton10; TLabel *Label1; void __fastcall Button1Click(TObject *Sender); void __fastcall Button4Click(TObject *Sender); void __fastcall FormCreate(TObject *Sender); void __fastcall FormDestroy(TObject *Sender); void __fastcall N1Click(TObject *Sender); void __fastcall IdFTP1Work(TObject *ASender, TWorkMode AWorkMode, __int64 AWorkCount); void __fastcall ListView1DblClick(TObject *Sender); void __fastcall N2Click(TObject *Sender); void __fastcall N3Click(TObject *Sender); void __fastcall N4Click(TObject *Sender); void __fastcall N5Click(TObject *Sender); void __fastcall N6Click(TObject *Sender); void __fastcall SpeedButton9Click(TObject *Sender); private: // User declarations public: // User declarations TMemoryStream *potok ; bool fl; void __fastcall UpdateList(void); __fastcall TForm1(TComponent* Owner); }; //--------------------------------------------------------------------------- extern PACKAGE TForm1 *Form1; //--------------------------------------------------------------------------- #endif ////////////////////////////////////////////////////////////////////////////////////////////////// | |
Просмотров: 3952 | Комментарии: 1 | Рейтинг: 0.0/0 |