A fájl letöltése az internetről (Delphi)

Fájl letöltése az internetről (Delphi).

Ha a program magában foglalja a plug-inek (BPL vagy DLL) vagy szükség van, hogy frissítse magát a programot, akkor minden bizonnyal az volt a probléma frissítése program példányait. A növekedést az internet egy nagyszerű lehetőség, hogy csinálni gyorsan és szépen. Ebben a cikkben megmutatjuk, hogyan kell hozzáadni a lehetőséget, hogy az automatikus frissítés programokat az internetről.
Delphi ad teljes hozzáférést biztosít az API WinInet (wininet.pas), amely lehetővé teszi, hogy csatlakozni, és olyan fájl letöltése a megadott honlapon, FTP vagy HTTP protokollokat. Például, tudjuk használni az API WinInet funkciók létrehozása FTP-böngésző, illetve a program, hogy nézd meg a nyilvános FTP-szerver egy fájlba.
A fő jellemzője a programnak - GetInetFile:

működnek GetInetFile (const fileURL, fájlnév: karakterlánc): logikai;
const buffersize = 1024;
var hSession, lendítés: HInternet;
Puffer: array [1..BufferSize] bájt;
BufferLen: DWORD;
f: fájl;
sAppName: string;
kezdődik
Eredmény: = false;
sAppName: = ExtractFileName (Application.ExeName);
hSession: = InternetOpen (PChar (sAppName), INTERNET_OPEN_TYPE_PRECONFIG,
nil, nulla, 0);
megpróbál
lendítés: = InternetOpenURL (hSession,
PChar (fileURL), nulla, 0,0,0);
megpróbál
AssignFile (f, fájlnév);
Átírása (F, 1);
ismétlés
InternetReadFile (lendítés, @Buffer, sizeof (puffer), BufferLen);
BlockWrite (f, puffer, BufferLen)
amíg BufferLen = 0;
CloseFile (f);
Eredmény: = true;
végül
InternetCloseHandle (lendítés)
vég
végül
InternetCloseHandle (hSession)
vég
végén;

Megjegyzés: Természetesen ez a példa kell bővíteni beiktatásával, például a kódot a letöltési folyamat a ciklusban.
Felhasználási GetInetFile igen egyszerű:

ha GetInetFile (FileOnNet, LocalFileName) = igaz, akkor
ShowMessage (letöltés sikeres)
más
ShowMessage (Hiba a fájl letöltése)