В общем написал я такую "образину" для получения размера файла, которая работает и сетью (http/https) и с локальными фалами. И все бы хорошо но "сетевой вариант" работает крайне медленно (для сравнительно небольших файлов почти нет разницы между полной загрузкой и запросом размера что по идее полный нонсенс так как это что-то вроде пинга   и реальные данные не загружаются от слова совсем ) 
    - Код: Выделить всё
- Function getFileSize( FPath:String):Int64;
 var
 sr: TSearchRec;
 S: string;
 HTTPClient : TFPHttpClient;
 ST:TStringList;
 begin
 Result := -1;
 
 If pos('http',FPath)=1 then begin
 
 HTTPClient := TFPHttpClient.Create(nil);
 ST:=TStringList.Create;
 
 try
 HTTPClient.Head(FPath,ST);
 
 except
 HTTPClient.Free;
 St.Free;
 exit;
 end;
 if HTTPClient.ResponseStatusText='' then begin
 S:= HTTPClient.GetHeader(ST,'Content-Length');
 If S<>'' then Result := S.ToInt64;
 end;
 HTTPClient.Free;
 St.Free;
 end else
 begin
 try
 if FindFirst(FPath , faAnyFile, sr) = 0 then
 begin
 Result :=  Sr.Size;
 end
 finally
 FindClose(sr);
 end
 end
 end;