12. august 2003 - 18:50Der er
6 kommentarer og 2 løsninger
InternetFileExists(url)
Jeg har lavet et lille program som kan downloade en masse filer for mig. Men hvis en fil på internettet ikke er der så kommer der fejl. Er der en måde jeg kan checke hvis filen er på den url jeg har ?
hm ja men det er jo egentlig det du allerede har...
Hvis den downloader er filen der...:) Hvis der kommer fejl er den der nok ikke. Jeg ved ikke hvilken måde du downloader filen på, men normalt ville der være en error event. Ellers brug try except og undgå den fejl meddelelse som kommer.
dkn -> sådan her ser det ud. jeg kan ikke bruge except fordi jeg har en finally ;(
procedure TForm1.DownloadWithProgress(const Url: String; Const DownloadPath: String=''); function ExtractURLFileName(const FileName: string): string; var I: Integer; begin I := LastDelimiter('/', FileName); Result := Copy(FileName, I + 1, MaxInt); end;
var LDestStream: TFileStream; DestDir : String; DestFileName : String; begin DestDir := DownloadPath; if DestDir = '' then DestDir := ExtractFilePath(Application.ExeName); DestDir := AddTalingBackslash(DestDir); if not DirectoryExists(DestDir) then ForceDirectories(DestDir); DestFileName := ExtractURLFileName(Url); LDestStream := TFileStream.Create(DestDir + DestFileName, fmCreate); try HTTP.Get(Url, LDestStream); finally FreeAndNil(LDestStream); end; end;
Ja .. hvor er jeg dum.. jeg kan jo bare lade være med at bruge finally og så bare sætte FreeAndNil(LDestStream); efter end;. men så har jeg bare det problem at den har lavet en fil med "ingen ting i", hvis den fil ik findes.
hmm ja man kunne ligge det i en memorystream, men det er nok ikke så hensigtmessig. Du kan jo bruge if fileexists() then deletefile. Men det er nu heller ikke alt for godt...
Nu ved jeg ik om du kender denne Indy component, men hvis du gør. Tror du at jeg kan sætte Create af fil op i HTTPWorkBegin og lukke den ved HTTPWorkEnd uden at den laver filen hvis den ik er på nette ?
azs: Hvad laver en Indy-koponent ?.Bare sådan helt banalt, poulært, hvis det er muligt.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.