IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)



Comme obtenir le répertoire d'un fichier ?
auteur : Geronimo
Pour obtenir le répertoire dans lequel est situé un fichier, utilisez la fonction ExtractFilePath . L'exemple suivant trouve le répertoire dans lequel est situé un fichier sélectionné dans une boite de dialogue d'ouverture. Placez donc une OpenDialog sur votre fiche.
AnsiString Directory;

if (OpenDialog1->Execute())
{
      Directory = ExtractFilePath(FileName);
      //... utilisation du répertoire
}

Comment obtenir le répertoire dans lequel est situé le programme exécutable ?
auteur : Geronimo
On a souvent besoin d'accéder à un fichier situé dans le répertoire de l'exécutable. Mais ce répertoire peut changer selon les ordinateurs... Il peut paraître plus simple d'utiliser directement le nom de fichier :
ChargerConfiguration("options.ini");
Dans ce cas, le fichier est cherché dans le répertoire par défaut de l'application. Mais ce répertoire peut être changé (regardez les raccourcis Windows, la propriété Démarrer en ). Il est donc nécessaire de trouver le répertoire de l'application, ce qui se fait à l'aide de la fonction ExtractFilePath de la manière suivante :
AnsiString RepertoireApplication = ExtractFilePath(Application->ExeName);
En effet, Application->ExeName contient le nom de fichier exécutable de l'application. La fonction ExtractFilePath en extrait le chemin. Donc pour notre petit exemple, nous utiliserions :
ChargerConfiguration(ExtractFilePath(Application->ExeName)+"options.ini");

Comment savoir si un répertoire existe ?
auteur : Geronimo
Faites appel à la fonction DirectoryExists. Il faut inclure le fichier FileCtrl.hpp ( #include filectrl.hpp).
if (DirectoryExists("c:\\windows\\temp"))
{
 //... utilisation de "c:\\windows\\temp"
}

Comment créer un répertoire ?
auteur : Geronimo
Utilisez la fonction CreateDirectory.
if (CreateDirectory((ExtractFilePath(Application->ExeName)+"images").c_str(), 0))
{
      // Le répertoire a été créé
}
else
{
  // Le répertoire n'a pas été créé
}

Comment créer un répertoire, un sous-répertoire et un sous-sous-répertoire en une fois ?
auteur : Geronimo
Windows n'est pas capable de créer plusieurs répertoires à la fois. Si vous voulez créer le répertoire c:\temp\mon_application, il faut que le répertoire temp existe déjà. Utilisez ForceDirectories pour créer plusieurs répertoires d'un coup :
if (ForceDirectories(ExtractFilePath(Application->ExeName)+"images\\puces\\bleues"))
{
   // Le répertoire a été créé
}
else
{
   // Le répertoire n'a pas été créé
}
Il faut inclure le fichier FileCtrl.hpp ( #include filectrl.hpp ).

Comment afficher une boite de dialogue de demande de répertoire ?
auteur : Geronimo
On voit souvent cette petite boite de dialogue très pratique dans les programmes d'installation, lorsqu'il s'agit de choisir le répertoire où sera déployé le logiciel. Cette petite boite de dialogue peut-être affichée
AnsiString Directory;
if (SelectDirectory("Sélectionnez le répertoire de copie", "c:\\", Directory))
{
    // L'utilisateur a validé avec OK
      if (!CopyFile(FileName.c_str(), (Directory+ExtractFileName(FileName)).c_str(), true))
            ShowMessage("La copie a échoué");
}
else
{
    // L'utilisateur a appuyé sur Annuler
}
La fonction SelectDirectory prend pour premier argument la légende de la fenêtre. Le second argument est le répertoire par défaut. Enfin, le troisième argument est la chaîne AnsiString dans laquelle sera stockée le répertoire. La fonction SelectDirectory retourne true si l'utilisateur valide avec OK. Sinon, elle retourne false . Le reste de l'exemple fait appel à la copie de fichier .