Verrouiler un fichier

Contenu du snippet

Voici une fonction qui permet de verrouiller un fichier.
Et une procedure qui permet de déverrouiller. En utilisant des fonction de l'API

Il est possible avec lockFile de verrouiller une partie du fichier je pense. Je regarderai plus tard pour gérer cela.

Source / Exemple :


Function LockFichier(sFich: string): hFile;
var
  HandleFich: hFile;
  // le type HFile n'est rien d'autre d'un LongWord
  wHSize, wSize: longword;
  ofs: TOFStruct; // on ne s'en servira pas (c'est juste pour le passer à OpenFile
begin
  result:= 0;
  if FileExists(sFich) then
  begin
    // on ouvre le fichier et on récupére son Handle
    HandleFich:= OpenFile(pChar(sFich), ofs, OF_READ or OF_WRITE or OF_SHARE_EXCLUSIVE);
    if HandleFich <> 0 then
    begin
      // on récupére la taille du fichier
      wSize:= GetFileSize(HandleFich, @wHSize);
      // on doit donné a LockFile la partie du fichier a verrouiller (c'est borne)
     if LockFile(hf, 0, 0, wSize, wHSize) then
        result:= HandleFich;
    end;
  end;
end;

Procedure UnLockFichier(HandleFich: hFile);
begin
  if HandleFich <> 0 then
    CloseHandle(HandleFich);
end;

Conclusion :


Voir le code original sur :
http://www.experts-exchange.com/Programming/Programming_Languages/Delphi/Q_20655593.html

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.