Merhaba arkadaşlar
Programımda verileri internet üzerinde güncelliyorum. Her seferinde yeni dosyalar eklendiği için program siteden ilgili zip dosyasını indiriyor. exenin bulunduğu path a temp klasörü oluşturup bunun içerisine açıyor ve buradan güncelleme yapıyor.
Ancak dosyayı bir defa indirdikten sonra ikinci kez aynı dosyayı indirmek istediğimde Temproray İnternet Files klasörüne attığı dosyayı getiriyor. Yani sitedeki yeni dosyayı indirmek yerine aynı adlı daha önceden indirdiğim dosyayı temp klasörüne alıyor.
Benin istediğim her seferinde sitede bulunan dosyayı alması
Temproray İnternet Files
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Temproray İnternet Files
Bilgi paylaşıldıkça güzeldir.
proxy server kullanıyorsanız benzer durum proxy arkasinda başıma gelmişti. Proxy'ye cache tutma diyerek işi çözmüştüm....
Bunun dışında eger dogrudan internet baglantisi varsa acaba internet ayarlarindaki dosyanın her zaman yeni halini kontrol et seşeneğinin seçilmesi bu durumu etkiler mi bilmiyorum.
Bir de dosyayi hangi component ile indiriyorsunuz? Indy componentleri ile deneyin eger onlari kullanmadıysanız....
Kolay gelsin....
Bunun dışında eger dogrudan internet baglantisi varsa acaba internet ayarlarindaki dosyanın her zaman yeni halini kontrol et seşeneğinin seçilmesi bu durumu etkiler mi bilmiyorum.
Bir de dosyayi hangi component ile indiriyorsunuz? Indy componentleri ile deneyin eger onlari kullanmadıysanız....
Kolay gelsin....
* http://www.fahrettin.org Manzara Fotoğraflarım... 
* http://delphiturkiye.gunduz.info Seminerler...
* http://www.hakmar.com.tr Kalite bir haktır...

* http://delphiturkiye.gunduz.info Seminerler...

* http://www.hakmar.com.tr Kalite bir haktır...

dosyayı aşağıdaki kodla indiriyorum
//////////////////////
uses kısmına ShellApi ve UrlMon unitlerini eklenecek
function DownLoadInternetFile(Source, Dest : String): Boolean;
begin
try
Result := URLDownloadToFile(nil,PChar(Source),PChar(Dest),0,nil) = 0
except
Result := False;
end;
end;
procedure TForm1i.Button1Click(Sender: TObject);
var
SourceString, DestinationString: string;
begin
SourceString := 'http://www.tcmb.gov.tr/kurlar/today.html';
DestinationString := 'c:\bugun.html';
DownLoadInternetFile(SourceString, DestinationString);
end;
//////////////////////////
aklıma şu çözüm geldi . temrorary internet files klasörünün yerini kod ile tespit edebilirsem download işlemine başlamadan önce aynı isimli dosyayı bu klasörden silmek.
Ancak halen daha temproray internet files klasörünü kod ile nasıl tespit edeceğimi bulamadım
//////////////////////
uses kısmına ShellApi ve UrlMon unitlerini eklenecek
function DownLoadInternetFile(Source, Dest : String): Boolean;
begin
try
Result := URLDownloadToFile(nil,PChar(Source),PChar(Dest),0,nil) = 0
except
Result := False;
end;
end;
procedure TForm1i.Button1Click(Sender: TObject);
var
SourceString, DestinationString: string;
begin
SourceString := 'http://www.tcmb.gov.tr/kurlar/today.html';
DestinationString := 'c:\bugun.html';
DownLoadInternetFile(SourceString, DestinationString);
end;
//////////////////////////
aklıma şu çözüm geldi . temrorary internet files klasörünün yerini kod ile tespit edebilirsem download işlemine başlamadan önce aynı isimli dosyayı bu klasörden silmek.
Ancak halen daha temproray internet files klasörünü kod ile nasıl tespit edeceğimi bulamadım
bir de bu fonksiyon ile almayı denesene
Kod: Tümünü seç
function GetNetDocument(url, fname: string): boolean;
type
mtype = array[0..1023] of byte;
var
fulltxt: string;
nread: cardinal;
etxt: mtype;
mhhtreq: HINTERNET;
mhtturl: HINTERNET;
mfile: file of mtype;
begin
result := false;
DeleteUrlCacheEntry(pchar(url));
try
mhhtreq := InternetOpen('mdown', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
try
mhtturl := InternetOpenUrl(mhhtreq, pchar(url), nil, 0, 0, 0);
fulltxt := url;
ReplaceStr(fulltxt, '/', '\');
if fname = '' then
fulltxt := extractfilename(fulltxt)
else
fulltxt := fname;
AssignFile(mfile, fulltxt);
Rewrite(mfile);
repeat
FillChar(etxt, 1024, #0);
InternetReadFile(mhtturl, @etxt, sizeof(etxt), nread);
Write(mfile, etxt);
Application.ProcessMessages;
until nread = 0;
finally
InternetCloseHandle(mhtturl);
closefile(mfile);
end;
finally
InternetCloseHandle(mhhtreq);
result := true;
end;
end;
ÜŞENME,ERTELEME,VAZGEÇME
ewt eklemeyi unutmusum WinInet uses kısmına eklenecek.
ReplaceStr func yoksa
ReplaceStr func yoksa
Kod: Tümünü seç
procedure ReplaceStr(var Str: string; oldChar, newChar: Char);
var
i: Integer;
begin
for i := 1 to length(Str) do
if Str[i] = oldChar then
Str[i] := newChar;
end;
ÜŞENME,ERTELEME,VAZGEÇME
gozunuz aydın....
sonucu bizimle paylaştığınız için teşekkürler....
sonucu bizimle paylaştığınız için teşekkürler....
* http://www.fahrettin.org Manzara Fotoğraflarım... 
* http://delphiturkiye.gunduz.info Seminerler...
* http://www.hakmar.com.tr Kalite bir haktır...

* http://delphiturkiye.gunduz.info Seminerler...

* http://www.hakmar.com.tr Kalite bir haktır...
