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

 Delphi Discussion :

Savoir si un fichier est déja ouvert? ...D6


Sujet :

Delphi

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    322
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2009
    Messages : 322
    Points : 310
    Points
    310
    Par défaut Savoir si un fichier est déja ouvert? ...D6
    Bonjour

    Tout est dans la question...

    J'ai un processus qui crée un fichier et un autre attend la fin pour pouvoir le modifier.

    Est-ce qu'il existe une fonction Delphi qui donne l'information?...

    Je ne veux pas tenter de l'ouvrir et déclencher une erreur...

    J'ai aussi tenté ça

    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
    function EnumereFichiersOuverts(Repertoire:string):integer;
    (*******************************}
    Retourne le nombre de fichiers qui sont en création
    (*******************************)
    var f:tsearchrec;
        ft: TextFile;
    begin
        result:=0;
        if findfirst(repertoire,faanyfile,f)=0 then repeat
            if f.Name[1]<>'.' then begin
               assign(ft,f.Name);
               if (TTextRec(ft).Mode <> fmClosed)//il le considère toujours fermé même s'il est ouvert...
                then inc(result);
    {
                CloseFile(ft);//déclenche d'ailleurs une exception ;)
    }
     
            end;
        until findnext(F)>0;
        SysUtils.findclose(f);
    end;
    Ça ne fonctionne pas, peut-être car le processus crée le fichier avec un stream...


    Merci d'avance

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    322
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2009
    Messages : 322
    Points : 310
    Points
    310
    Par défaut
    Ça y'est

    Tiré de : http://www.developpez.net/forums/d10...r-deja-ouvert/

    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
    function EnumereFichiersOuverts(Repertoire:string):integer;
    (*******************************}
    Retourne le nombre de fichiers qui sont en creation
    (*******************************)
    var f:tsearchrec;
        H:integer;
    begin
        result:=0;
        if findfirst(repertoire,faanyfile,f)=0 then repeat
            if f.Name[1]<>'.' then begin
               H:=fileOpen(f.name,fmOpenWrite);
               if H>=0
                   then inc(result)
                   else FileClose(H);
            end;
        until findnext(F)>0;
        SysUtils.findclose(f);
    end;

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 06/05/2014, 10h34
  2. comment savoir si un fichier est dèjà ouvert
    Par max33370 dans le forum ASP.NET
    Réponses: 4
    Dernier message: 20/01/2010, 09h34
  3. [VB]Savoir si un fichier est ouvert ou non
    Par voileux dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 21/01/2006, 17h01
  4. savoir si un fichier est ouvert
    Par niclalex dans le forum Access
    Réponses: 2
    Dernier message: 12/10/2005, 20h19
  5. Unix - Comment savoir si un fichier est ouvert
    Par freddyboy dans le forum C
    Réponses: 7
    Dernier message: 06/10/2004, 16h53

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