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

Langage Delphi Discussion :

Comment tester si fichier est ouvert ?


Sujet :

Langage Delphi

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 13
    Points : 11
    Points
    11
    Par défaut Comment tester si fichier est ouvert ?
    bonjour a tous,
    j ai trouver sa sur le forum mais cela ne marche pas pour les fichier ouvert en lecture seul une idee serait sympa


    merci
    a+
    fusef
    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
    function FileInUse(AFile:string):Boolean; 
    var 
      h: Thandle; 
    begin 
      Result:=False; 
      h:=CreateFile(PChar(AFile), 
                    GENERIC_WRITE, 
                    FILE_SHARE_WRITE, 
                    nil, 
                    OPEN_EXISTING, 
                    FILE_ATTRIBUTE_NORMAL, 
                    0); 
      if h = INVALID_HANDLE_VALUE then 
        begin 
          Result:=True; 
        end; 
     
      CloseHandle(h); 
    end; 
     
    procedure TForm1.Button1Click(Sender: TObject); 
    begin 
      if FileInUse('C:\Temp\Todel1.doc') then 
        ShowMessage('Fichier en cours d''utilisation'); 
    end;

  2. #2
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Salut,
    et en modifiant l'attribut ?
    par
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/base/createfile.asp

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 13
    Points : 11
    Points
    11
    Par défaut
    ben je vais essayer
    merci de l info
    a+
    fusef

  4. #4
    Membre à l'essai
    Inscrit en
    Août 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 13
    Points : 11
    Points
    11
    Par défaut
    et ben non cela ne change pas
    a+
    fusef

  5. #5
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Quel est ton contexte d'utilisation ?

  6. #6
    Membre à l'essai
    Inscrit en
    Août 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 13
    Points : 11
    Points
    11
    Par défaut
    bon je vais essayer de m expliquer je ne suis pas douee pour ça
    je suis en train d ecrire un robot qui scrute mon dossiers Mes documents
    des qu il trouve un fichier dont le nom commence par une chaine predefinit il doit couper le document et le coller dans un autre emplacement,le prob c est que ci le fichier est en cour d util ben la ya pas bon.
    avec la fonction precedente cela fontionne pour les .doc .xls etc.
    mais par exemple avec un fichier image de type tiff et imaging ou un fichier txt et notepad marche pas il me laisse faire un shfileoperation (couper et coler).et evidement je manipule surtout des fichiers image.
    ce qui est bizar c est que imaging arrive a savoir si un fichier est deja ouvert par lui meme ????

  7. #7
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Effectivement en utilisant Process Explorer (http://www.sysinternals.com/) Notepad charge le fichier en mémoire puis ferme le handle du fichier, le laissant libre pour d'autres applications.
    Donc le code fonctionne bien, par contre le style de codage de Notepad ...

    Dans ce cas il faut t'assurer que l'opération SHFileoperation empêche l'écriture sur un fichier que tu est en train de copier.
    Regarde dans le SDK.

  8. #8
    Membre à l'essai
    Inscrit en
    Août 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 13
    Points : 11
    Points
    11
    Par défaut
    merci laurent de la piste le sdk j avais pas pensée
    je sens qu il vas y avoir du sport
    a+
    fusef

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 07/07/2014, 12h13
  2. Tester si fichier est ouvert
    Par smoes94 dans le forum Qt
    Réponses: 2
    Dernier message: 22/06/2010, 18h23
  3. Tester si 1 fichier est ouvert
    Par Jeanvaljean44 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 14/08/2008, 09h43
  4. Réponses: 11
    Dernier message: 11/01/2008, 19h13
  5. Unix - Comment savoir si un fichier est ouvert
    Par freddyboy dans le forum C
    Réponses: 7
    Dernier message: 06/10/2004, 15h53

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