Page 1 sur 1

[Résolu] Comment savoir si un fichier existe

Publié : mer. 24/oct./2018 16:04
par Micoute
Bonjour à tous,

en ce moment je peaufine mon logiciel de dépistage du diabète et comme il y a quelques aberrations, j'aimerais y remédier et en particulier éviter d'écraser un fichier existant.

J'ai bien compris qu'il fallait que j'utilise ExamineDirectory, NextDirectoryEntry etDirectoryName, mais je ne m'en sort pas, c'est pourquoi je fais appel à votre aide précieuse et je vous en remercie par avance.

Un petit bout de code:

Code : Tout sélectionner

Procedure NouveauSite()
  Protected Resultat$
  If IsWindow(#Fenetre_Img)
    CloseWindow(#Fenetre_Img)
  EndIf 
  
  Fichier_Patients = SaveFileRequester("Veuillez entrer le nom du site", FichierParDefaut$, Filtre$, Filtre)
  
  If Fichier_Patients <> ""
    ;vérifier si le site existe
    If ExamineDirectory(0, Repertoire$, Fichier_Patients)
      While NextDirectoryEntry(0)
        Resultat$ = DirectoryEntryName(0)
        Debug Resultat$
        If Resultat$ = Fichier_Patients
          MessageRequester("Attention", "Ce site existe déjà", #PB_MessageRequester_Warning)
          Fichier_Patients+".AFD"
        EndIf
      Wend  
    EndIf  
  Else  
    MessageRequester("Information", ~"Vous avez annulé la création\n\nLe programme va se fermer", #PB_MessageRequester_Info)
    End
  EndIf 
  
  Programme_principal()
  
EndProcedure

Re: Comment savoir si un fichier existe

Publié : mer. 24/oct./2018 17:00
par boby

Code : Tout sélectionner

if FileSize("nom du fichier") >= 0

Re: Comment savoir si un fichier existe

Publié : mer. 24/oct./2018 17:33
par MLD
@Micoute
Si le ficher recherché est dans le même répertoire que ton logiciel
If ReadFile(300, "xxx.mld") = 0; il n'est pas la
CreateFile(300,"xxx.mld"); il faut le créer
EndIf

Re: Comment savoir si un fichier existe

Publié : mer. 24/oct./2018 22:44
par Ar-S
+1 pour FileSize c'est le plus simple.

Re: [Résolu] Comment savoir si un fichier existe

Publié : jeu. 25/oct./2018 6:37
par Micoute
Merci à tous pour vos réponses qui m'ont été très utiles.

Re: [Résolu] Comment savoir si un fichier existe

Publié : mer. 31/oct./2018 13:37
par microdevweb
filLeSize(fileName.s) ; -1 le fichier n'existe pas
filLeSize(fileName.s) ; -2 c'est un répertoire

Re: [Résolu] Comment savoir si un fichier existe

Publié : mer. 31/oct./2018 14:52
par Micoute
Merci microdevweb

Re: [Résolu] Comment savoir si un fichier existe

Publié : mer. 31/oct./2018 18:49
par cage
Bonjour,

Code : Tout sélectionner

Procedure fileExist(f$)
  If FileSize(f$) < 0
    ProcedureReturn #False
  Else
    ProcedureReturn #True
  EndIf
EndProcedure

Procedure.a folderExist(f$)
  If FileSize(f$) = -2
    ProcedureReturn #True
  Else
    ProcedureReturn #False
  EndIf
EndProcedure

Fichier$ = "un fichier quelconque"

If Not folderExist(Fichier$)
  If fileExist(Fichier$)
    ;
    ;
  EndIf
Endif
cage

Re: [Résolu] Comment savoir si un fichier existe

Publié : jeu. 01/nov./2018 7:03
par Micoute
Merci aussi cage, une preuve de plus que tous les bons raisonnements mènent au même résultat.