comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

[Delphi] FTP Manager 1.0

  • 0 Respuestas
  • 1332 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado BigBear

  • *
  • Underc0der
  • Mensajes: 543
  • Actividad:
    0%
  • Reputación 3
    • Ver Perfil
« en: Agosto 05, 2016, 11:01:10 pm »
Un cliente FTP en Delphi con las siguientes opciones :

  • Se puede conectar a cualquier servidor FTP
  • Navegar y listar los directorios de nuestra computadora
  • Navegar y listar los directorios del servidor FTP
  • Se puede crear,renombrar,eliminar archivos y directorios de nuestra computadora
  • Se puede crear,renombrar,eliminar archivos y directorios del servidor FTP
  • Se puede bajar y subir archivos del servidor FTP comodamente


Una imagen :



El codigo :

Código: Delphi
  1. // FTP Manager 1.0
  2. // (C) Doddy Hackman 2016
  3.  
  4. unit ftp;
  5.  
  6. interface
  7.  
  8. uses
  9.   Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
  10.   System.Classes, Vcl.Graphics,
  11.   Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ComCtrls,
  12.   IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
  13.   IdExplicitTLSClientServerBase, IdFTP, Shellapi, Vcl.ImgList, IdFTPList,
  14.   Vcl.Imaging.pngimage, Vcl.ExtCtrls, Vcl.Menus, Vcl.Styles.Utils.ComCtrls,
  15.   Vcl.Styles.Utils.Menus,
  16.   Vcl.Styles.Utils.SysStyleHook,
  17.   Vcl.Styles.Utils.SysControls, Vcl.Styles.Utils.Forms,
  18.   Vcl.Styles.Utils.StdCtrls, Vcl.Styles.Utils.ScreenTips;
  19.  
  20. type
  21.   TFormHome = class(TForm)
  22.     gbFTP_Data: TGroupBox;
  23.     lblHost: TLabel;
  24.     txtHost: TEdit;
  25.     lblUsername: TLabel;
  26.     txtUsername: TEdit;
  27.     lblPassword: TLabel;
  28.     txtPassword: TEdit;
  29.     btnConnect: TButton;
  30.     gbMyFiles: TGroupBox;
  31.     lblDirectory1: TLabel;
  32.     txtMe_Directory: TEdit;
  33.     btnListMe: TButton;
  34.     lvLocalFiles: TListView;
  35.     gbFTP_Files: TGroupBox;
  36.     lblDirectory2: TLabel;
  37.     txt_FTP_Directory: TEdit;
  38.     btnList_FTP: TButton;
  39.     lv_FTP_Files: TListView;
  40.     btnUpload: TButton;
  41.     btnDownload: TButton;
  42.     directorios: TListBox;
  43.     archivos: TListBox;
  44.     status: TStatusBar;
  45.     local_iconos: TImageList;
  46.     ftp_client: TIdFTP;
  47.     ftp_iconos: TImageList;
  48.     progreso: TProgressBar;
  49.     imgLogo: TImage;
  50.     menu_local: TPopupMenu;
  51.     MakeDirectory1: TMenuItem;
  52.     Rename1: TMenuItem;
  53.     Delete1: TMenuItem;
  54.     Refresh1: TMenuItem;
  55.     menu_ftp: TPopupMenu;
  56.     MakeDirectory2: TMenuItem;
  57.     Rename2: TMenuItem;
  58.     Delete2: TMenuItem;
  59.     Refresh2: TMenuItem;
  60.     ilIconos: TImageList;
  61.     procedure btnConnectClick(Sender: TObject);
  62.     procedure btnListMeClick(Sender: TObject);
  63.     procedure btnList_FTPClick(Sender: TObject);
  64.     procedure btnUploadClick(Sender: TObject);
  65.     procedure ftp_clientWork(ASender: TObject; AWorkMode: TWorkMode;
  66.       AWorkCount: Int64);
  67.     procedure ftp_clientWorkBegin(ASender: TObject; AWorkMode: TWorkMode;
  68.       AWorkCountMax: Int64);
  69.     procedure ftp_clientWorkEnd(ASender: TObject; AWorkMode: TWorkMode);
  70.     procedure btnDownloadClick(Sender: TObject);
  71.     procedure lvLocalFilesDblClick(Sender: TObject);
  72.     procedure lv_FTP_FilesDblClick(Sender: TObject);
  73.     procedure MakeDirectory1Click(Sender: TObject);
  74.     procedure Rename1Click(Sender: TObject);
  75.     procedure Delete1Click(Sender: TObject);
  76.     procedure Refresh1Click(Sender: TObject);
  77.     procedure FormCreate(Sender: TObject);
  78.     procedure MakeDirectory2Click(Sender: TObject);
  79.     procedure Rename2Click(Sender: TObject);
  80.     procedure Delete2Click(Sender: TObject);
  81.     procedure Refresh2Click(Sender: TObject);
  82.  
  83.   private
  84.     { Private declarations }
  85.   public
  86.     { Public declarations }
  87.   end;
  88.  
  89. var
  90.   FormHome: TFormHome;
  91.  
  92. implementation
  93.  
  94. {$R *.dfm}
  95.  
  96. procedure listar(dirnownow: string; ListaDeArchivos: TListView;
  97.   ListaDeIconos: TImageList);
  98. var
  99.   buscar: TSearchRec;
  100.   Icon: TIcon;
  101.   listate: TListItem;
  102.   getdata: SHFILEINFO;
  103.   dirnow: string;
  104.  
  105. begin
  106.  
  107.   if (DirectoryExists(dirnownow)) then
  108.   begin
  109.     ListaDeIconos.Clear;
  110.  
  111.     dirnow := StringReplace(dirnownow, '/', '\', [rfReplaceAll, rfIgnoreCase]);
  112.  
  113.     ListaDeArchivos.Items.Clear;
  114.     Icon := TIcon.Create;
  115.     ListaDeArchivos.Items.BeginUpdate;
  116.  
  117.     if FindFirst(dirnow + '*.*', faAnyFile, buscar) = 0 then
  118.     begin
  119.       repeat
  120.         if (buscar.Attr = faDirectory) then
  121.         begin
  122.  
  123.           with ListaDeArchivos do
  124.           begin
  125.  
  126.             if not(buscar.Name = '.') and not(buscar.Name = '..') then
  127.             begin
  128.  
  129.               listate := ListaDeArchivos.Items.Add;
  130.  
  131.               SHGetFileInfo(PChar(dirnow + buscar.Name), 0, getdata,
  132.                 SizeOf(getdata), SHGFI_DISPLAYNAME);
  133.               listate.Caption := getdata.szDisplayName;
  134.  
  135.               SHGetFileInfo(PChar(dirnow + buscar.Name), 0, getdata,
  136.                 SizeOf(getdata), SHGFI_TYPENAME);
  137.               listate.SubItems.Add(getdata.szTypeName);
  138.  
  139.               SHGetFileInfo(PChar(dirnow + buscar.Name), 0, getdata,
  140.                 SizeOf(getdata), SHGFI_ICON or SHGFI_SMALLICON);
  141.               Icon.Handle := getdata.hIcon;
  142.               listate.ImageIndex := ListaDeIconos.AddIcon(Icon);
  143.  
  144.               DestroyIcon(getdata.hIcon);
  145.  
  146.             end;
  147.           end;
  148.  
  149.         end;
  150.       until FindNext(buscar) <> 0;
  151.       FindClose(buscar);
  152.     end;
  153.  
  154.     if FindFirst(dirnow + '*.*', faAnyFile, buscar) = 0 then
  155.     begin
  156.       repeat
  157.         if (buscar.Attr <> faDirectory) then
  158.         begin
  159.  
  160.           with ListaDeArchivos do
  161.           begin
  162.  
  163.             listate := ListaDeArchivos.Items.Add;
  164.  
  165.             SHGetFileInfo(PChar(dirnow + buscar.Name), 0, getdata,
  166.               SizeOf(getdata), SHGFI_DISPLAYNAME);
  167.             listate.Caption := buscar.Name;
  168.  
  169.             SHGetFileInfo(PChar(dirnow + buscar.Name), 0, getdata,
  170.               SizeOf(getdata), SHGFI_TYPENAME);
  171.             listate.SubItems.Add(getdata.szTypeName);
  172.  
  173.             SHGetFileInfo(PChar(dirnow + buscar.Name), 0, getdata,
  174.               SizeOf(getdata), SHGFI_ICON or SHGFI_SMALLICON);
  175.             Icon.Handle := getdata.hIcon;
  176.             listate.ImageIndex := ListaDeIconos.AddIcon(Icon);
  177.  
  178.             DestroyIcon(getdata.hIcon);
  179.  
  180.           end;
  181.  
  182.         end
  183.  
  184.         until FindNext(buscar) <> 0;
  185.         FindClose(buscar);
  186.       end;
  187.  
  188.       ListaDeArchivos.Items.EndUpdate;
  189.     end;
  190.  
  191.   end;
  192.  
  193.   procedure listarftp(dirnownow2: string; ListaDeArchivosFTP: TListView;
  194.     ftp: TIdFTP; DirectoriosEncontrados: TListBox;
  195.     ArchivosEncontrados: TListBox);
  196.   var
  197.     i: integer;
  198.     Item: TIdFTPListItem;
  199.     listate2: TListItem;
  200.  
  201.   begin
  202.  
  203.     ListaDeArchivosFTP.Items.Clear;
  204.     DirectoriosEncontrados.Clear;
  205.     ArchivosEncontrados.Clear;
  206.  
  207.     listate2 := ListaDeArchivosFTP.Items.Add;
  208.  
  209.     ftp.ChangeDir(dirnownow2);
  210.     ftp.List('*.*', True);
  211.  
  212.     for i := 0 to ftp.DirectoryListing.Count - 1 do
  213.     begin
  214.  
  215.       Item := ftp.DirectoryListing.Items[i];
  216.       if Item.ItemType = ditFile then
  217.       begin
  218.         DirectoriosEncontrados.Items.Add(ftp.DirectoryListing.Items[i]
  219.           .FileName);
  220.       end
  221.       else
  222.       begin
  223.         ArchivosEncontrados.Items.Add(ftp.DirectoryListing.Items[i].FileName);
  224.       end;
  225.  
  226.     end;
  227.  
  228.     ListaDeArchivosFTP.Items.Clear;
  229.  
  230.     for i := 0 to ArchivosEncontrados.Count - 1 do
  231.     begin
  232.  
  233.       with ListaDeArchivosFTP do
  234.  
  235.       begin
  236.  
  237.         listate2 := ListaDeArchivosFTP.Items.Add;
  238.         listate2.Caption := ArchivosEncontrados.Items[i];
  239.         listate2.SubItems.Add('Directory');
  240.         listate2.ImageIndex := 0;
  241.  
  242.       end;
  243.     end;
  244.  
  245.     for i := 0 to DirectoriosEncontrados.Count - 1 do
  246.     begin
  247.  
  248.       with ListaDeArchivosFTP do
  249.  
  250.       begin
  251.  
  252.         listate2 := ListaDeArchivosFTP.Items.Add;
  253.         listate2.Caption := DirectoriosEncontrados.Items[i];
  254.         listate2.SubItems.Add('File');
  255.         listate2.ImageIndex := 1;
  256.  
  257.       end;
  258.     end;
  259.  
  260.   end;
  261.  
  262.   procedure TFormHome.btnConnectClick(Sender: TObject);
  263.   begin
  264.  
  265.     lv_FTP_Files.Items.Clear;
  266.  
  267.     directorios.Clear;
  268.     archivos.Clear;
  269.  
  270.     if (btnConnect.Caption = 'Disconnect') then
  271.     begin
  272.       ftp_client.Disconnect;
  273.       btnConnect.Caption := 'Connect';
  274.       status.Panels[0].Text := '[+] Disconnected';
  275.       FormHome.status.Update;
  276.       txt_FTP_Directory.Text := '';
  277.       MessageBox(0, 'Disconnected', 'FTP Manager 1.0', MB_ICONINFORMATION);
  278.     end
  279.     else
  280.     begin
  281.  
  282.       ftp_client.host := txtHost.Text;
  283.       ftp_client.username := txtUsername.Text;
  284.       ftp_client.password := txtPassword.Text;
  285.  
  286.       try
  287.         ftp_client.connect;
  288.         btnConnect.Caption := 'Disconnect';
  289.         status.Panels[0].Text := '[+] Connected';
  290.         FormHome.status.Update;
  291.  
  292.         txt_FTP_Directory.Text := '/';
  293.         listarftp(txt_FTP_Directory.Text, lv_FTP_Files, ftp_client, directorios,
  294.           archivos);
  295.  
  296.         MessageBox(0, 'Connected', 'FTP Manager 1.0', MB_ICONINFORMATION);
  297.       except
  298.         status.Panels[0].Text := '[-] Error connecting to server';
  299.         FormHome.status.Update;
  300.         MessageBox(0, 'Error connecting to server', 'FTP Manager 1.0',
  301.           MB_ICONERROR);
  302.       end;
  303.     end;
  304.  
  305.   end;
  306.  
  307.   procedure TFormHome.Delete1Click(Sender: TObject);
  308.   var
  309.     archivo: string;
  310.   begin
  311.     if Assigned(lvLocalFiles.Selected) then
  312.     begin
  313.       archivo := lvLocalFiles.Selected.Caption;
  314.       if DeleteFile(txtMe_Directory.Text + '/' + archivo) then
  315.       begin
  316.         if not(txtMe_Directory.Text = '') then
  317.         begin
  318.           listar(txtMe_Directory.Text, lvLocalFiles, local_iconos);
  319.         end;
  320.         MessageBox(0, 'Deleted', 'FTP Manager 1.0', MB_ICONINFORMATION);
  321.       end
  322.       else
  323.       begin
  324.         MessageBox(0, 'Error', 'FTP Manager 1.0', MB_ICONERROR);
  325.       end;
  326.     end;
  327.   end;
  328.  
  329.   procedure TFormHome.Delete2Click(Sender: TObject);
  330.   var
  331.     archivo: string;
  332.   begin
  333.     if Assigned(lv_FTP_Files.Selected) then
  334.     begin
  335.       archivo := lv_FTP_Files.Selected.Caption;
  336.       ftp_client.ChangeDir(txt_FTP_Directory.Text);
  337.       try
  338.         begin
  339.           ftp_client.Delete(archivo);
  340.           if not(txt_FTP_Directory.Text = '') then
  341.           begin
  342.             listarftp(txt_FTP_Directory.Text, lv_FTP_Files, ftp_client,
  343.               directorios, archivos);
  344.           end;
  345.           MessageBox(0, 'Deleted', 'FTP Manager 1.0', MB_ICONINFORMATION);
  346.         end;
  347.       except
  348.         MessageBox(0, 'Error', 'FTP Manager 1.0', MB_ICONERROR);
  349.       end;
  350.     end;
  351.   end;
  352.  
  353.   procedure TFormHome.btnDownloadClick(Sender: TObject);
  354.   var
  355.     fileabajar: string;
  356.   begin
  357.  
  358.     if Assigned(lv_FTP_Files.Selected) then
  359.     begin
  360.       try
  361.         begin
  362.           fileabajar := lv_FTP_Files.Selected.Caption;;
  363.           ftp_client.OnWork := ftp_clientWork;
  364.           ftp_client.ChangeDir(txt_FTP_Directory.Text);
  365.  
  366.           progreso.Max := ftp_client.Size(ExtractFileName(fileabajar)) div 1024;
  367.  
  368.           ftp_client.Get(fileabajar, txtMe_Directory.Text + '/' + fileabajar,
  369.             False, False);
  370.  
  371.           if not(txtMe_Directory.Text = '') then
  372.           begin
  373.             listar(txtMe_Directory.Text, lvLocalFiles, local_iconos);
  374.           end;
  375.  
  376.           MessageBox(0, 'Action completed successfully', 'FTP Manager 1.0',
  377.             MB_ICONINFORMATION);
  378.         end;
  379.       except
  380.         MessageBox(0, 'Error', 'FTP Manager 1.0', MB_ICONERROR);
  381.       end;
  382.     end
  383.     else
  384.     begin
  385.       MessageBox(0, 'Select File to download', 'FTP Manager 1.0',
  386.         MB_ICONINFORMATION);
  387.     end;
  388.   end;
  389.  
  390.   procedure TFormHome.FormCreate(Sender: TObject);
  391.   begin
  392.     UseLatestCommonDialogs := False;
  393.     txtMe_Directory.Text := GetCurrentDir + '\';
  394.     listar(txtMe_Directory.Text, lvLocalFiles, local_iconos);
  395.   end;
  396.  
  397.   procedure TFormHome.ftp_clientWork(ASender: TObject; AWorkMode: TWorkMode;
  398.     AWorkCount: Int64);
  399.   begin
  400.     status.Panels[0].Text := '[+] Working ...';
  401.     FormHome.status.Update;
  402.  
  403.     progreso.Position := AWorkCount div 1024;
  404.   end;
  405.  
  406.   procedure TFormHome.ftp_clientWorkBegin(ASender: TObject;
  407.     AWorkMode: TWorkMode; AWorkCountMax: Int64);
  408.   begin
  409.     status.Panels[0].Text := '[+] Working ..';
  410.     FormHome.status.Update;
  411.   end;
  412.  
  413.   procedure TFormHome.ftp_clientWorkEnd(ASender: TObject; AWorkMode: TWorkMode);
  414.   begin
  415.     status.Panels[0].Text := '[+] Finished';
  416.     FormHome.status.Update;
  417.     progreso.Max := 0;
  418.   end;
  419.  
  420.   procedure TFormHome.lv_FTP_FilesDblClick(Sender: TObject);
  421.   begin
  422.     if Assigned(lv_FTP_Files.Selected) then
  423.     begin
  424.       if (lv_FTP_Files.Selected.SubItems.Strings[0] = 'Directory') then
  425.       begin
  426.         ftp_client.ChangeDir(txt_FTP_Directory.Text +
  427.           lv_FTP_Files.Selected.Caption + '/');
  428.         listarftp(txt_FTP_Directory.Text + lv_FTP_Files.Selected.Caption + '/',
  429.           lv_FTP_Files, ftp_client, directorios, archivos);
  430.         txt_FTP_Directory.Text := ftp_client.RetrieveCurrentDir + '/';
  431.       end;
  432.     end
  433.     else
  434.     begin
  435.       MessageBox(0, 'Write path', 'FTP Manager 1.0', MB_ICONINFORMATION);
  436.     end;
  437.   end;
  438.  
  439.   procedure TFormHome.btnList_FTPClick(Sender: TObject);
  440.   begin
  441.     if not(txt_FTP_Directory.Text = '') then
  442.     begin
  443.       listarftp(txt_FTP_Directory.Text, lv_FTP_Files, ftp_client, directorios,
  444.         archivos);
  445.     end
  446.     else
  447.     begin
  448.       MessageBox(0, 'Write path', 'FTP Manager 1.0', MB_ICONINFORMATION);
  449.     end;
  450.   end;
  451.  
  452.   procedure TFormHome.btnListMeClick(Sender: TObject);
  453.   begin
  454.     if not(txtMe_Directory.Text = '') then
  455.     begin
  456.       listar(txtMe_Directory.Text, lvLocalFiles, local_iconos);
  457.     end
  458.     else
  459.     begin
  460.       MessageBox(0, 'Write path', 'FTP Manager 1.0', MB_ICONINFORMATION);
  461.     end;
  462.   end;
  463.  
  464.   procedure TFormHome.lvLocalFilesDblClick(Sender: TObject);
  465.   begin
  466.     if Assigned(lvLocalFiles.Selected) then
  467.     begin
  468.       if (DirectoryExists(txtMe_Directory.Text + lvLocalFiles.Selected.Caption +
  469.         '/')) then
  470.       begin
  471.         Chdir(txtMe_Directory.Text + lvLocalFiles.Selected.Caption + '/');
  472.         listar(txtMe_Directory.Text + lvLocalFiles.Selected.Caption + '/',
  473.           lvLocalFiles, local_iconos);
  474.         txtMe_Directory.Text := GetCurrentDir + '\';
  475.       end;
  476.     end
  477.     else
  478.     begin
  479.       MessageBox(0, 'Select Path', 'FTP Manager 1.0', MB_ICONINFORMATION);
  480.     end;
  481.   end;
  482.  
  483.   procedure TFormHome.MakeDirectory1Click(Sender: TObject);
  484.   var
  485.     directorio: string;
  486.   begin
  487.     directorio := InputBox('FTP Manager 1.0', 'Directory : ', '');
  488.     try
  489.       begin
  490.         MkDir(txtMe_Directory.Text + '/' + directorio);
  491.         if not(txtMe_Directory.Text = '') then
  492.         begin
  493.           listar(txtMe_Directory.Text, lvLocalFiles, local_iconos);
  494.         end;
  495.         MessageBox(0, 'Directory created', 'FTP Manager 1.0',
  496.           MB_ICONINFORMATION);
  497.       end;
  498.     except
  499.       MessageBox(0, 'Error', 'FTP Manager 1.0', MB_ICONERROR);
  500.     end;
  501.   end;
  502.  
  503.   procedure TFormHome.MakeDirectory2Click(Sender: TObject);
  504.   var
  505.     directorio: string;
  506.   begin
  507.     directorio := InputBox('FTP Manager 1.0', 'Directory : ', '');
  508.     try
  509.       begin
  510.         ftp_client.ChangeDir(txt_FTP_Directory.Text);
  511.         ftp_client.MakeDir(directorio);
  512.         if not(txt_FTP_Directory.Text = '') then
  513.         begin
  514.           listarftp(txt_FTP_Directory.Text, lv_FTP_Files, ftp_client,
  515.             directorios, archivos);
  516.         end;
  517.         MessageBox(0, 'Directory created', 'FTP Manager 1.0',
  518.           MB_ICONINFORMATION);
  519.       end;
  520.     except
  521.       MessageBox(0, 'Error', 'FTP Manager 1.0', MB_ICONERROR);
  522.     end;
  523.   end;
  524.  
  525.   procedure TFormHome.Refresh1Click(Sender: TObject);
  526.   begin
  527.     if not(txtMe_Directory.Text = '') then
  528.     begin
  529.       listar(txtMe_Directory.Text, lvLocalFiles, local_iconos);
  530.     end
  531.     else
  532.     begin
  533.       MessageBox(0, 'Write path', 'FTP Manager 1.0', MB_ICONINFORMATION);
  534.     end;
  535.   end;
  536.  
  537.   procedure TFormHome.Refresh2Click(Sender: TObject);
  538.   begin
  539.     if not(txt_FTP_Directory.Text = '') then
  540.     begin
  541.       listarftp(txt_FTP_Directory.Text, lv_FTP_Files, ftp_client, directorios,
  542.         archivos);
  543.     end;
  544.   end;
  545.  
  546.   procedure TFormHome.Rename1Click(Sender: TObject);
  547.   var
  548.     original, new_name: string;
  549.   begin
  550.     if Assigned(lvLocalFiles.Selected) then
  551.     begin
  552.       original := lvLocalFiles.Selected.Caption;
  553.       new_name := InputBox('FTP Manager 1.0', 'New name : ', '');
  554.       if RenameFile(txtMe_Directory.Text + '/' + original,
  555.         txtMe_Directory.Text + '/' + new_name) then
  556.       begin
  557.         if not(txtMe_Directory.Text = '') then
  558.         begin
  559.           listar(txtMe_Directory.Text, lvLocalFiles, local_iconos);
  560.         end;
  561.         MessageBox(0, 'Changed', 'FTP Manager 1.0', MB_ICONINFORMATION);
  562.       end
  563.       else
  564.       begin
  565.         MessageBox(0, 'Error', 'FTP Manager 1.0', MB_ICONERROR);
  566.       end;
  567.     end;
  568.   end;
  569.  
  570.   procedure TFormHome.Rename2Click(Sender: TObject);
  571.   var
  572.     original, new_name: string;
  573.   begin
  574.     if Assigned(lv_FTP_Files.Selected) then
  575.     begin
  576.       original := lv_FTP_Files.Selected.Caption;
  577.       new_name := InputBox('FTP Manager 1.0', 'New name : ', '');
  578.       try
  579.         begin
  580.           ftp_client.ChangeDir(txt_FTP_Directory.Text);
  581.           ftp_client.Rename(original, new_name);
  582.           if not(txt_FTP_Directory.Text = '') then
  583.           begin
  584.             listarftp(txt_FTP_Directory.Text, lv_FTP_Files, ftp_client,
  585.               directorios, archivos);
  586.           end;
  587.           MessageBox(0, 'Changed', 'FTP Manager 1.0', MB_ICONINFORMATION);
  588.         end;
  589.       except
  590.         MessageBox(0, 'Error', 'FTP Manager 1.0', MB_ICONERROR);
  591.       end;
  592.     end;
  593.  
  594.   end;
  595.  
  596.   procedure TFormHome.btnUploadClick(Sender: TObject);
  597.   var
  598.     fileasubir: string;
  599.     dirasubir: string;
  600.     cantidad: File of byte;
  601.   begin
  602.  
  603.     if Assigned(lvLocalFiles.Selected) then
  604.     begin
  605.       try
  606.         begin
  607.           fileasubir := txtMe_Directory.Text + lvLocalFiles.Selected.Caption;
  608.           dirasubir := txt_FTP_Directory.Text;
  609.  
  610.           ftp_client.OnWork := ftp_clientWork;
  611.  
  612.           AssignFile(cantidad, fileasubir);
  613.           Reset(cantidad);
  614.           progreso.Max := FileSize(cantidad) div 1024;
  615.           CloseFile(cantidad);
  616.  
  617.           ftp_client.ChangeDir(dirasubir);
  618.           ftp_client.Put(fileasubir, lvLocalFiles.Selected.Caption, False);
  619.  
  620.           if not(txt_FTP_Directory.Text = '') then
  621.           begin
  622.             listarftp(txt_FTP_Directory.Text, lv_FTP_Files, ftp_client,
  623.               directorios, archivos);
  624.           end;
  625.  
  626.           MessageBox(0, 'Action completed successfully', 'FTP Manager 1.0',
  627.             MB_ICONINFORMATION);
  628.         end;
  629.       except
  630.         MessageBox(0, 'Error', 'FTP Manager 1.0', MB_ICONERROR);
  631.       end;
  632.     end
  633.     else
  634.     begin
  635.       MessageBox(0, 'Select File to upload', 'FTP Manager 1.0',
  636.         MB_ICONINFORMATION);
  637.     end;
  638.   end;
  639.  
  640. end.
  641.  
  642. // The End ?
  643.  

Si quieren bajar el programa lo pueden hacer de No tienes permisos para ver links. Registrate o Entra con tu cuenta.

 

¿Te gustó el post? COMPARTILO!



[Sintaxis general de Delphi] By: Geek Lord Venezuela [R00t] Team

Iniciado por ANTRAX

Respuestas: 0
Vistas: 1984
Último mensaje Febrero 24, 2010, 04:35:15 pm
por ANTRAX
Eliminar acentos y otros agregados de un caracter/cadena Delphi 2009

Iniciado por ANTRAX

Respuestas: 0
Vistas: 3129
Último mensaje Febrero 24, 2010, 04:57:14 pm
por ANTRAX
1er troyano en Delphi By: Geek Lord Venezuela [R00t] Team

Iniciado por ANTRAX

Respuestas: 0
Vistas: 3257
Último mensaje Febrero 24, 2010, 04:34:48 pm
por ANTRAX
Poner splash screen con progress bar en delphi

Iniciado por ANTRAX

Respuestas: 0
Vistas: 2886
Último mensaje Febrero 24, 2010, 04:54:23 pm
por ANTRAX
[Delphi] Creacion de un Troyano de conexion inversa

Iniciado por BigBear

Respuestas: 4
Vistas: 3336
Último mensaje Mayo 05, 2017, 09:10:55 am
por _inicio_cerrarsesión