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

MFC Discussion :

Tester le chemin d'accès donné à CfileDialog


Sujet :

MFC

  1. #1
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 52
    Par défaut Tester le chemin d'accès donné à CfileDialog
    Bonjour,

    Je crée une application qui utilise la classe CfileDialog du type:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CFileDialog fileDlg (TRUE,NULL,NULL,OFN_HIDEREADONLY,lpszFilter,this);
    Pour définir le chemin d'accès initial j'utilise donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fileDlg.m_ofn.lpstrInitialDir = dir;
    Existe-t-il un moyen de vérifier que le répertoire que je souhaite écrire dans la structure m_ofn soit valide ? Que mon "dir" correspond bien a une chemin qui existe sur mon PC ?

    Je vous remercie par avance.
    Damien

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 394
    Par défaut
    Peut-être avec le flag OFN_PATHMUSTEXIST, mais pour "avant", j'ai des doutes...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 52
    Par défaut
    C'est une bonne idée ce flag mais il ne permet de vérifier que ce qu'à entrer l'utilisateur, moi je cherche à faire une vérification plutôt avant...

    Merci

  4. #4
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 165
    Par défaut
    Salut,

    Je te propose une fonction que j'ai écrite pour vérifier l'existance d'un repertoire

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    BOOL FindFolder(LPCTSTR lpszFolder)
    {
    	VERIFY(lpszFolder != NULL);
     
    	CString strFolder(lpszFolder);
    	if (strFolder.IsEmpty())
    		return FALSE;
     
    	// using shlwapi.h
    	//return PathIsDirectory(lpszFolder);
     
    	if (strFolder[strFolder.GetLength() - 1] != _T('\\'))
    		strFolder += _T('\\');
     
    	BOOL bRet;
    	// Check Drive
    	if (strFolder.GetLength() == 3)
    	{
    		UINT nType = GetDriveType(strFolder);
    		bRet = (DRIVE_REMOVABLE <= nType && nType <= DRIVE_RAMDISK);
    	}
    	else
    	{
    		CFileFind ff;
    		bRet = ff.FindFile(strFolder + _T(".."));
    		if (bRet)
    			bRet = ff.FindFile(strFolder + _T("."));
     
    		ff.Close();
    	}
     
    	return bRet;
    }
    A+

  5. #5
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 52
    Par défaut
    Merci, je vais utiliser ça.
    bonne journee

  6. #6
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 394
    Par défaut
    En fait, je conseillerais plutôt un simple GetFileAttributes() sur le chemin de répertoire + vérification de FILE_ATTRIBUTE_DIRECTORY...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

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

Discussions similaires

  1. [Débutant] Tester un chemin d'accés à un fichier
    Par BasicZX81 dans le forum VB.NET
    Réponses: 2
    Dernier message: 05/10/2014, 21h35
  2. Réponses: 1
    Dernier message: 05/03/2008, 17h52
  3. Comment tester une couche d'accès aux données
    Par ygrim dans le forum Persistance des données
    Réponses: 3
    Dernier message: 26/02/2008, 17h30
  4. [Excel] Importation de données (chemin d'accès)
    Par Contractofoued dans le forum MATLAB
    Réponses: 2
    Dernier message: 17/09/2007, 16h57
  5. Réponses: 1
    Dernier message: 01/03/2007, 13h54

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