Merhaba arkadaşlar.
Uygulamam da urldownloadfile fonksiyonu ile
http://www.xxx.xxx/ali.txt gibi bi url den yerele dosya aktarıp işlem yaptırtıyorum.
Fonsyion Win10 ve üstünde sorunsuz çalışırken, Win8 ve Win7 de çalışmıyor.. hiç bir şekilde o url ye gitmiyor.
Başına gelen veya çözümü bilen var mı dır? Ortak kullandığım Fonksiyonum aşağıdaki gibidir.
function DownloadFile(sourcefile, destfile: string): Boolean;
begin
try
Result := UrlDownloadToFile(nil, pchar(sourcefile), pchar(destfile), 0, nil) = 0;
except
Result := False;
end;
end;
(11-02-2024, Saat: 20:28)mcuyan Adlı Kullanıcıdan Alıntı: [ -> ]Merhaba arkadaşlar.
Uygulamam da urldownloadfile fonksiyonu ile http://www.xxx.xxx/ali.txt gibi bi url den yerele dosya aktarıp işlem yaptırtıyorum.
Fonsyion Win10 ve üstünde sorunsuz çalışırken, Win8 ve Win7 de çalışmıyor.. hiç bir şekilde o url ye gitmiyor.
Başına gelen veya çözümü bilen var mı dır? Ortak kullandığım Fonksiyonum aşağıdaki gibidir.
function DownloadFile(sourcefile, destfile: string): Boolean;
begin
try
Result := UrlDownloadToFile(nil, pchar(sourcefile), pchar(destfile), 0, nil) = 0;
except
Result := False;
end;
end;
Bu
UrlDownloadToFile UrlMon.pas içindeki bildiğimiz API ise, onun dönüş değerini hatalı kontrol ettiğinizi görüyorum. Aşağıdaki link'ten dönüş ile ilgili değerleri kontrol ederek işlem yapmanızı tavsiye ederim. Geriye dönen HRESULT değeri S_OK'dan farklı ise, gelen değeri internette aratıp nokta atışı hatayı tespit edebilirsiniz.
Ben bu fonksiyonu yazdım ve dosya almak ve kaydetmek için kullanıyorum.
Kod:
procedure TfrmDataModule.LoadFileFromURL(FileName: String; url: string);
var
http : TNetHTTPClient;
vStream : TMemoryStream;
begin
try
try
http := TNetHTTPClient.Create(nil);
vStream := TMemoryStream.Create;
if (Pos('https', LowerCase(url)) > 0) then
HTTP.SecureProtocols := [THTTPSecureProtocol.TLS1,
THTTPSecureProtocol.TLS11,
THTTPSecureProtocol.TLS12];
http.Get(url, vStream);
vStream.Position := 0;
vStream.SaveToFile(FileName);
except
end;
finally
vStream.DisposeOf;
http.DisposeOf;
end;
end;
Bu apinin ansi ve unicode olanı var ikisini de denediniz mi?
URLDownloadToFileA
URLDownloadToFileW
Denemdim de.. mantik olarak ne farkı olabilir ki hocam.?
Ansi kullanımda belirli karakterlerlerde sorun olabilir.
Mesela dosya yolunda özel bir karakter kullanılıyorsa.
yok hocam. tamamen ing karakter seti. özel yada tr karakterler yok hiç..