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

VB.NET Discussion :

Soucis avec File.exists


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Responsable Maintenance
    Inscrit en
    Août 2012
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Responsable Maintenance

    Informations forums :
    Inscription : Août 2012
    Messages : 478
    Points : 442
    Points
    442
    Par défaut Soucis avec File.exists
    Bonjour à tous,
    j'essaie de tester la présence dans un repertoire de chemin de type locale de ce type

    ‪D:\Documents\test.pdf

    File.exists me retourne toujours false


    Le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    If DataGridView1.Rows.Count <> 0 Then
                For I As Long = 0 To DataGridView1.Rows.Count - 1
                    Dim Lienfichier As String = DataGridView1.Rows(I).Cells(0).Value.ToString
     
                    Dim test As Boolean = File.Exists(Lienfichier)
                    If test = True Then
                        DataGridView1.Rows(I).Cells("ColLien").Value = True
                    Else
                        DataGridView1.Rows(I).Cells("ColLien").Value = False
                    End If
                Next
            End If
    j'ai essayer la commande openread avec ce format de path mais ne fonctionne pas erreur de syntaxe du Path apparement ?

    Cdt

  2. #2
    Membre éclairé Avatar de r.morel
    Homme Profil pro
    Dessinateur CAO
    Inscrit en
    Août 2014
    Messages
    336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Dessinateur CAO
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2014
    Messages : 336
    Points : 667
    Points
    667
    Par défaut
    Salut,
    Il faut utiliser la classe FileInfo et la propriété Exists
    Essaye comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim FileInfoTest As New FileInfo((Lienfichier) 
    
                    If FileInfoTest = True Then
                        DataGridView1.Rows(I).Cells("ColLien").Value = True
                    Else
                        DataGridView1.Rows(I).Cells("ColLien").Value = False
                    End If

  3. #3
    Membre éclairé Avatar de r.morel
    Homme Profil pro
    Dessinateur CAO
    Inscrit en
    Août 2014
    Messages
    336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Dessinateur CAO
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2014
    Messages : 336
    Points : 667
    Points
    667
    Par défaut
    Citation Envoyé par r.morel Voir le message
    Salut,
    Il faut utiliser la classe FileInfo et la propriété Exists
    Essaye comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim FileInfoTest As New FileInfo((Lienfichier) 
    
                    If FileInfoTest = True Then
                        DataGridView1.Rows(I).Cells("ColLien").Value = True
                    Else
                        DataGridView1.Rows(I).Cells("ColLien").Value = False
                    End If

    J'avais oublier le .Exists :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim FileInfoTest As New FileInfo((Lienfichier) 
    
                    If FileInfoTest.Exists = True Then
                        DataGridView1.Rows(I).Cells("ColLien").Value = True
                    Else
                        DataGridView1.Rows(I).Cells("ColLien").Value = False
                    End If

  4. #4
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Salut,

    (je suppose que le fichier testé est censé existé)
    as-tu essayé d'externaliser un simple File.Exists(@"‪D:\Documents\test.pdf"); pour voir si ça vient de là ou de ton implémentation ?

  5. #5
    Membre averti
    Homme Profil pro
    Responsable Maintenance
    Inscrit en
    Août 2012
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Responsable Maintenance

    Informations forums :
    Inscription : Août 2012
    Messages : 478
    Points : 442
    Points
    442
    Par défaut
    Bonjour,
    Fileinfo ne me retourne pas un état boolean..

    Qu'appelez vous externalisé ?

    Merci

  6. #6
    Membre averti
    Homme Profil pro
    Responsable Maintenance
    Inscrit en
    Août 2012
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Responsable Maintenance

    Informations forums :
    Inscription : Août 2012
    Messages : 478
    Points : 442
    Points
    442
    Par défaut
    c'est fileinfotest.exists que je dois utilisé mais ca me retourne l'erreur suivante

    Une exception non gérée du type 'System.NotSupportedException' s'est produite dans mscorlib.dll
    Informations supplémentaires : Le format du chemin d'accès donné n'est pas pris en charge.

    et le chemin c'est D:\Documents\test.pdf

    je ne comprends pas ou est l'erreur de format?

  7. #7
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Citation Envoyé par Ashireon Voir le message
    Qu'appelez vous externalisé ?
    Tu vires la boucle, tu vires la lecture des valeurs dans le DGV ... tu vires tout et tu testes simplement la ligne qui est censée être exécutée (soit celle que j'ai mise plus haut). Un peu comme un test unitaire. Si ça retourne true c'est que l'algo est à mettre en cause, sinon c'est du côté dudit fichier qu'il faudra regarder.

  8. #8
    Membre averti
    Homme Profil pro
    Responsable Maintenance
    Inscrit en
    Août 2012
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Responsable Maintenance

    Informations forums :
    Inscription : Août 2012
    Messages : 478
    Points : 442
    Points
    442
    Par défaut
    Donc la ca me retourne True

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    Dim test As Boolean = File.Exists("D:\documents\test.pdf")
    sans le @ car il n'en veut pas..

    si je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Dim Lien As String = "D:\documents\test.pdf"
            Dim test As Boolean = File.Exists(Lien)
    en chargeant une variable ça fonctionne
    mais si la variable est chargé par le datagridview paf non fonctionne plus pourtant en mettant un Espion j'ai le même string pour le chemin du fichier

  9. #9
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Désolé pour le @, c'est spécifique à C# (pour dire que les antislashes ne servent pas à échapper le char suivant).

    Je vois que tu as fait du pas-à-pas pour voir la valeur de la chaine passée en paramètre (bonne initiative), par contre as-tu vérifié que le retour de Exists était réellement false ?
    Une même fonction avec un même paramètre doit retourner le même résultat, il serait donc possible que ce soit ton DataGridView1.Rows(I).Cells("ColLien").Value = True qui ne fonctionne pas et qui t'induit en erreur.

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

Discussions similaires

  1. Soucis avec File
    Par Contrec dans le forum Débuter avec Java
    Réponses: 8
    Dernier message: 16/04/2010, 11h10
  2. Problème avec File.Exists
    Par kazylax dans le forum VB.NET
    Réponses: 2
    Dernier message: 16/06/2009, 15h40
  3. Problène avec file.exists sous unix
    Par Nalfeim dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 06/05/2009, 14h23
  4. File.exist avec une partie du nom seulement
    Par kahya dans le forum Interfaces Graphiques en Java
    Réponses: 4
    Dernier message: 18/01/2008, 12h04

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