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

Langage Delphi Discussion :

Chemin absolu en monoposte


Sujet :

Langage Delphi

  1. #1
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 310
    Points
    2 310
    Par défaut Chemin absolu en monoposte
    Salut

    Je dois garder le chemin du fichier que je sélectionne via le composant OpenDialog mais je veux que le chemin soit toujours comme si j'accède à un poste réseau comme ceci :
    \\PC-DEM-HADRI\PARTAGE\COMPTE RENDU DE MISSION.DOCX
    Or si je parcours le DD local il me donne p.e ça :
    C:\USERS\MAGIC\DESKTOP\DQE _BRANCHEMENT RS.ASSAINISS (CORRIGÉ, ZONE CHLEF).DOC
    La confusion se prête quand j'installe mon application sur un autre poste, le chemin du second exemple pointe sur le disque dur local or que c'est faut alors le fichier n'est pas trouvé.

    Je trouve que la meilleure façon est de forcer le chemin selon l'exemple 1 même si je suis en mode "monoposte" d'où ma question :
    comment puis-je ajouter le nom du pc et formater mon chemin comme si je parcourais les postes du réseau ? y'a-t-il une fonction toute prête ?

    je suis sous Delphi 2009.

    Merci par avance.
    Bon courage ou Bonne Chance (selon le contexte)
    Mon blog sur WordPress

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 534
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 534
    Points : 25 082
    Points
    25 082
    Par défaut
    Tu veux conserver le chemin UNC
    Il existe une vieille fonction ScUNCFromLocalPath dans le API windows et une fonction plus moderne WNetGetUniversalName

    Bonne Lecture !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 310
    Points
    2 310
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    Tu veux conserver le chemin UNC
    Il existe une vieille fonction ScUNCFromLocalPath dans le API windows et une fonction plus moderne WNetGetUniversalName

    Bonne Lecture !
    Merci Shai
    • la vieille fonction agit comme ExpandFileName en local donc c'est pas ce que je souhaite
    • l'autre fonction, en local, génère une l'erreur suivante
      cette connexion réseau n'existe pas
      évidemment puisque je suis en mode monoposte alors comment puis-je contourner le problème. voici le code que j'ai utilisé (je l'ai copié du net )

      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
      function TfmMain.GetUNCName(const LocalPath: string): string;
      var
        BufferSize: DWord;
        DummyBuffer: Byte;
        Buffer: Pointer;
        Error: DWord;
      begin
        BufferSize := 1;
        WNetGetUniversalName(PChar(LocalPath), UNIVERSAL_NAME_INFO_LEVEL, @DummyBuffer, BufferSize);
        Buffer := AllocMem(BufferSize);
        try
          Error := WNetGetUniversalName(PChar(LocalPath), UNIVERSAL_NAME_INFO_LEVEL, Buffer, BufferSize);
          if Error <> NO_ERROR then
            begin
              SetLastError(Error);
              RaiseLastWin32Error;
            end;
          Result := PUniversalNameInfo(Buffer)^.lpUniversalName
        finally
          FreeMem(Buffer);
        end;
      end;
    Bon courage ou Bonne Chance (selon le contexte)
    Mon blog sur WordPress

Discussions similaires

  1. [PDE] chemin absolu
    Par khokho dans le forum Eclipse Platform
    Réponses: 1
    Dernier message: 23/08/2005, 11h41
  2. [Info]chemin absolu du projet courant
    Par slyos72 dans le forum Eclipse Platform
    Réponses: 2
    Dernier message: 30/05/2005, 10h06
  3. [langage] chemin absolu d un fichier
    Par nono1782 dans le forum Langage
    Réponses: 4
    Dernier message: 20/07/2004, 14h02
  4. [langage] Création de dossier en chemin absolu
    Par Jibees dans le forum Langage
    Réponses: 4
    Dernier message: 25/04/2003, 10h57

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