Salut, je veux construire un aspirateur multithread, pour ce faire il faut travailler avec des threads, tel que chacun télécharge une partie du fichier, ce fichier doit être découpé en morceaux, la question qui tourne dans ma tête c'est est-ce-que c'est le développeur qui doit découper ce fichier et mettre ses parties sur le serveur ou bien c'est l'application elle même qui s'en charge, en tout cas j'ai trouvé une procédure qui réalise ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
procedure SplitFile(FileName : TFileName; SizeofFiles : integer; ;outputfolder : string) ; //la aussi on le declare !!
var
  i : Word;
  fs, sStream: TFileStream;
  SplitFileName: string;
begin
  if outputfolder[length(outputfolder)]<>'\' then outputfolder:=outputfolder+'\'; //la on rajoute le '\' au cas ou il y est pas, pour pas avoir de probleme
  fs := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite);
try
  for i := 1 to Trunc(fs.Size / SizeofFiles) + 1 do
begin
  SplitFileName := outputfolder+ExtractFileName(FileName)+ '.'+ FormatFloat('000', i);  //et c'est la que l'on donne un nom au nouveau fichier...
  sStream := TFileStream.Create(SplitFileName, fmCreate or fmShareExclusive);
  try
  if fs.Size - fs.Position < SizeofFiles then
    SizeofFiles := fs.Size - fs.Position;
    sStream.CopyFrom(fs, SizeofFiles);
  finally
    sStream.Free;
  end;
end;
finally
  fs.Free;
end;
end;
Mais je crois pas que je peux utiliser cette procédure avec un fichier distant (sur serveur) ! Alors est-il possible de découper un fichier qui se trouve sur un serveur distant pour faire un téléchargement multithread? si oui, comment procéder? ( je pense que c'est le cas de IDM). Et merci pour me répondre.