[Résolu] Comment savoir si un fichier existe

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Micoute
Messages : 2522
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

[Résolu] Comment savoir si un fichier existe

Message 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
Dernière modification par Micoute le jeu. 25/oct./2018 6:36, modifié 1 fois.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.73 PB 6.00 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
boby
Messages : 261
Inscription : jeu. 07/juin/2007 22:54

Re: Comment savoir si un fichier existe

Message par boby »

Code : Tout sélectionner

if FileSize("nom du fichier") >= 0
Avatar de l’utilisateur
MLD
Messages : 1097
Inscription : jeu. 05/févr./2009 17:58
Localisation : Bretagne

Re: Comment savoir si un fichier existe

Message 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
Avatar de l’utilisateur
Ar-S
Messages : 9472
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Comment savoir si un fichier existe

Message par Ar-S »

+1 pour FileSize c'est le plus simple.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Micoute
Messages : 2522
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

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

Message par Micoute »

Merci à tous pour vos réponses qui m'ont été très utiles.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.73 PB 6.00 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Avatar de l’utilisateur
microdevweb
Messages : 1798
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

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

Message par microdevweb »

filLeSize(fileName.s) ; -1 le fichier n'existe pas
filLeSize(fileName.s) ; -2 c'est un répertoire
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Avatar de l’utilisateur
Micoute
Messages : 2522
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

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

Message par Micoute »

Merci microdevweb
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.73 PB 6.00 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Avatar de l’utilisateur
cage
Messages : 506
Inscription : ven. 16/oct./2015 18:22
Localisation : France
Contact :

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

Message 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
■ Win10 64-bit (Intel Celeron CPU N2920 @ 1.86GHz, 4,0GB RAM, Intel HD Graphics) & PB 6.00 LTS
■ Vivre et laisser vivre.
■ PureBasic pour le fun
■ Gérard sur le forum Anglais
■ Mes sites: http://pbcage.free.fr - http://yh.toolbox.free.fr
Avatar de l’utilisateur
Micoute
Messages : 2522
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

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

Message par Micoute »

Merci aussi cage, une preuve de plus que tous les bons raisonnements mènent au même résultat.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.73 PB 6.00 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Répondre