IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Contribuez Delphi Discussion :

FileStream temporaire windows


Sujet :

Contribuez Delphi

  1. #1
    Membre éprouvé
    Avatar de Montor
    Homme Profil pro
    Autre
    Inscrit en
    Avril 2008
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Avril 2008
    Messages : 879
    Points : 963
    Points
    963
    Par défaut FileStream temporaire windows
    Creer un fichier temporaire qui sera supprimer automatiquement a sa fermeture par le windows
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
      TWinTempFileStream=class(TFileStream)
      private
        FFilename :string;
        function NewFilename(const ADir:string):string;
      public
        constructor Create(const ADir:string='');
        property  Filename:string read FFilename;
      end;
     
    implementation
     
    constructor TWinTempFileStream.Create(const ADir:string);
    var
     H:Cardinal;
    begin 
        FFilename:=NewFilename(ADir);
        H := CreateFile(PChar(FFilename),GENERIC_READ or GENERIC_WRITE,
                                0, nil, CREATE_ALWAYS,
                                FILE_FLAG_DELETE_ON_CLOSE, 0);
        if H = INVALID_HANDLE_VALUE then
          raise Exception.Create('Error')
        else
         inherited Create(H);
     
    end;
     
    function TWinTempFileStream.NewFilename(const ADir: string): string;
    var
      FileName :array[0..MAX_PATH-1] of Char;
     
    begin
      if DirectoryExists(aDir)
      then StrPCopy(FileName, aDir)
      else GetTempPath(MAX_PATH, FileName);
     
      GetTempFilename(FileName, '~__', 0, FileName);
      Result := FileName;
    end;

  2. #2
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 693
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 693
    Points : 13 126
    Points
    13 126
    Par défaut
    Une autre façon de créer un nom unique en passant par les APIs:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function TWinTempFileStream.NewFilename(const ADir: string): string;
    var
      FileName :array[0..MAX_PATH-1] of Char;
     
    begin
      if DirectoryExists(aDir)
      then StrPCopy(FileName, aDir)
      else GetTempPath(MAX_PATH, FileName);
     
      GetTempFilename(FileName, '~__', 0, FileName);
      Result := FileName;
    end;
    Remplace aussi Exception.Create par RaiseLastOSError.

  3. #3
    Membre éprouvé
    Avatar de Montor
    Homme Profil pro
    Autre
    Inscrit en
    Avril 2008
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Avril 2008
    Messages : 879
    Points : 963
    Points
    963
    Par défaut
    Merci je viens adapter ton code

Discussions similaires

  1. Obtenir le repertoire temporaire Windows D2010
    Par SergioMaster dans le forum Débuter
    Réponses: 12
    Dernier message: 09/04/2010, 17h55
  2. profil temporaire sous windows 2003
    Par arwen dans le forum Windows Serveur
    Réponses: 5
    Dernier message: 17/02/2009, 09h03
  3. Oracle 9.2 Windows 2003 TABLESPACE Temporaire
    Par ducho dans le forum Administration
    Réponses: 6
    Dernier message: 02/04/2008, 15h10
  4. Repertoire temporaire de windows
    Par Delphi-ne dans le forum Delphi
    Réponses: 1
    Dernier message: 12/01/2007, 09h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo