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

API, COM et SDKs Delphi Discussion :

chemin complet d'un répertoire partagé


Sujet :

API, COM et SDKs Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 287
    Points : 91
    Points
    91
    Par défaut chemin complet d'un répertoire partagé
    Bonjour,

    est-il possible d'obtenir le chemin complet d'un répertoire partagé d'un ordinateur quelconque du réseau ?

    Merci

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 132
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 132
    Points : 1 418
    Points
    1 418
    Par défaut
    BONJOUR?

    Je ne l'ai plus en tête mais il y a une fonction du genre GetUNCPathName() qui donne le chemin complet.

    (Je suis sûr qu'il y a UNC dans le nom de la fonction, pour le reste l'aide devrait faire l'affaire)


    devYan.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 287
    Points : 91
    Points
    91
    Par défaut
    J'ai trouvé une fonction "ScLocalPathFromUNC", mais je ne trouve pas à quelle uses elle est rattachée

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 132
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 132
    Points : 1 418
    Points
    1 418
    Par défaut
    Je lai retrouvé, il s'agit de ExpandUNCFileName(). 8)


    devYan.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 287
    Points : 91
    Points
    91
    Par défaut
    Après test, en fait je veux l'inverse
    Je récupère le nom de répertoire au format : \\serveur\repertoire\

    Et je voudrais le chemin complet sur le disque réseau lecteur:\repertoire....

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mars 2006
    Messages : 147
    Points : 84
    Points
    84
    Par défaut
    Bonjour,

    Je suis "à nouveau" débutant en delphi (après une courte interruption d'une dizaine d'années...) mais il me semble que le code suivant pourrait être une piste. Le principe, c'est d'utiliser NetShareEnum pour obtenir la liste des ressource partagées d'une machine.

    Connaissant le drive paratagé et son UNC: \\Host\NomPartage, ce programme donne la correspondance entre NomPartage et le chemin réel drive:\rep1\Rep2 etc. ce qui doit pouvoir résoudre le problème...

    (Attention, programme en cours d'écriture et non testé, en cours de traduction depuis un autre langage).

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
     
    unit GetSharedRessource;
     
     
     
    interface
    uses windows, ContNRS;
     
      const
     
      // NetShareEnum renvoie ERROR_SUCCESS si Ok, et ERROR_MORE_DATA si Ok mais pas tout lu => Autre appel nécessaire pur continuer
      ERROR_MORE_DATA=234;
      ERROR_SUCCESS=0;
      // Pour debugger le resume, utiliser 1000 sur proliant
      MAX_PREFERRED_LENGTH=-1;
    (*
      SHARE_INFO_2=2
      // {&SHARE_INFO_2} => On obtient ce type de structure, contenant le nom de partage et le path réel.
    typedef struct _SHARE_INFO_2
    {  LPWSTR shi2_netname;         4    Adresse de la chaîne !
       DWORD shi2_type;             4
       LPWSTR shi2_remark;          4    Adresse de la chaîne !
       DWORD shi2_permissions;      4
       DWORD shi2_max_uses;         4
       DWORD shi2_current_uses;     4
       LPWSTR shi2_path;            4    Adresse de la chaîne !
       LPWSTR shi2_passwd;          4
    } SHARE_INFO_2, *PSHARE_INFO_2, *LPSHARE_INFO_2;
    *)
     
    // Disk drive
    STYPE_DISKTREE=0;
    // Print queue
    STYPE_PRINTQ=1;
    //Interprocess communication (IPC)
    STYPE_IPC=-2147483645;
    // Special share reserved for interprocess communication (IPC$) or remote administration of the server (ADMIN$). Can also refer to administrative shares such as C$, D$, E$, and so forth.
    STYPE_SPECIAL=-2147483648;
    Function GetShare(pi_srv: String): String;
     
     
     
      Type
     
        // Liste des partages: Record et Table
        TSharedRes = Class(TObject)
            K_SHARE,
            PATH,
            LIB,
            K_TYPE // DISK, ADMIN, PRINTER, OTHER
            : String;
            I_TYPE
            : Integer;
            procedure   Assign(SharedRes:TSharedRes) ; // trés utille pour affecter un enr à un autre
            procedure   ClearRec  ;  // remet tout à la valeur initiale (nom='' ; K_Code='' par exemple)
            constructor create ;
            destructor  Destroy; override;
     
        end;
        Ttt_SharedRes = Class(TObjectlist)
          function    GetRec(i:integer) : TSharedRes ;
          procedure   SetRec(i:integer;Rec :TSharedRes);
          property    SharedRes[i:integer]:TSharedRes read GetRec  write SetRec ;
          procedure   Clear;
          constructor create;
          destructor  Destroy; override;
        end;
     
        // Association entre un répertoire et des partages permettant d'y accèder
        TShareDir = class(TObject)
            K_DIR,
            K_SHARE
            : String;
        end;
     
     
     
     
      NET_API_STATUS = DWORD;
        PSHARE_INFO_2  = ^SHARE_INFO_2;
        SHARE_INFO_2   = record
          shi2_netname     :  PWideChar;
          shi2_type        :  DWORD;
          shi2_remark      :  PWideChar;
          shi2_permissions :  DWORD;
          shi2_max_uses    :  DWORD;
          shi2_current_uses:  DWORD;
          shi2_path        :  PWideChar;
          shi2_passwd      :  PWideChar;
        end;
     
        function NetShareEnum(ServerName   : PWideChar;
                            Level        : DWORD;
                            bufptr       : Pointer;
                            PrefMaxLen   : DWORD;
                            EntriesRead  : PDWORD;
                            TotalEntries : PDWORD;
                            Resume_Handle: PDWORD):NET_API_STATUS;
                            stdcall; external 'NetAPI32.dll' name 'NetShareEnum';
        function NetApiBufferFree(Buffer: Pointer): NET_API_STATUS;
                            stdcall; external 'NetAPI32.dll' name 'NetApiBufferFree';
    var
      vSharedRes : TSharedRes;
      tt_SharedRes: Ttt_SharedRes;
     
    implementation
     
     
     
     
    // TSharedRes méthodes
    procedure   TSharedRes.Assign(SharedRes:TSharedRes) ; // trés utille pour affecter un enr à un autre
    Begin
    end;
    procedure   TSharedRes.ClearRec  ;  // remet tout à la valeur initiale (nom='' ; K_Code='' par exemple)
    Begin
     
    End;
    constructor TSharedRes.create ;
    Begin
      Inherited create;
    End;
    destructor  TSharedRes.Destroy;
    Begin
      inherited Destroy;
    End;
    //Ttt_SharedRes méthodes
    function Ttt_SharedRes.GetRec(i:integer) : TSharedRes ;
    Begin
      Result:=TSharedRes(items[i]);
    End;
    procedure Ttt_SharedRes.SetRec(i:integer;Rec :TSharedRes);
    Begin
      Items[i]:=Rec;
    End;
    procedure Ttt_SharedRes.clear ;
    Begin
      inherited clear;
    End;
    constructor Ttt_SharedRes.create;
    Begin
      Inherited create;
    End;
    destructor Ttt_SharedRes.destroy;
    Begin
      Inherited Destroy;
    End;
     
     
     
    Function GetShare(pi_srv: String): String;
    const
      MAX_PREFERRED_LENGTH = -1;
      NERR_SUCCESS         = 0;
    var
      ER : DWORD; // enries read
      TE : DWORD; // total entries
      ResHandle : DWORD;
      ShareInfo : PSHARE_INFO_2;
      p         : pChar;
      fResult   : NET_API_STATUS;
      i         : Integer;
      vwc_srv   : PWideChar;
    begin
     
      While tt_SharedRes.Count > 0 Do Begin
        tt_SharedRes.First;
        tt_SharedRes.Delete(0);
      end;
     
     
      New(vwc_srv);
      ResHandle := 0;
      StringToWideChar(pi_srv, vwc_srv, length(pi_srv));
      fResult := NetShareEnum({nil} vwc_srv, 2, @ShareInfo, DWORD(MAX_PREFERRED_LENGTH), @ER, @TE, @ResHandle);
      if(fResult <> NERR_SUCCESS)then
       Exit;
      p := Pointer(ShareInfo);
      for i := 0 to TE - 1 do begin
        vSharedRes := TSharedRes.Create;
        vSharedRes.K_SHARE := WideCharToString(PSHARE_INFO_2(p)^.shi2_netname);
        vSharedRes.PATH    := WideCharToString(PSHARE_INFO_2(p)^.shi2_path);
        vSharedRes.I_TYPE  := PSHARE_INFO_2(p)^.shi2_type;
        Case PSHARE_INFO_2(p)^.shi2_type of
            STYPE_DISKTREE: vSharedRes.K_TYPE := 'Disk';
            STYPE_PRINTQ:   vSharedRes.K_TYPE := 'PRINTER';
            //STYPE_IPC:      vSharedRes.K_TYPE := 'IPC';
            //STYPE_SPECIAL:  vSharedRes.K_TYPE := 'ADMIN';
        else
                            vSharedRes.K_TYPE := 'OTHER';
        end;
        tt_SharedRes.Add(vSharedRes);
        p := p + SizeOf(SHARE_INFO_2);
      end;
      NetApiBufferFree(@ShareInfo);
      Dispose(vwc_srv);
    end;
     
    Begin
     
     
     
    end.
    Cordialement.
    Flines.

  7. #7
    Membre expert
    Avatar de TicTacToe
    Inscrit en
    Septembre 2005
    Messages
    1 940
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 940
    Points : 3 575
    Points
    3 575
    Par défaut
    Si tu connais le lecteur mappé,

    tu peux faire un truc du style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    UNCLecteur := GetUNCFileNAme( MonLecteur + ':\' );
     
    MonCheminPasUNC := StringReplace( TonCheminUnc, UNCLecteur, MonLecteur + ':', [ rfReplaceAll ] );
    vérifier la correspondances avec les slash, éventuellement avec Include ou ExcludePathDelimiter...

    Si tu ne connais pas le lecteur, il y a surement moyen de le retrouver mais j'ai pas de solution d'avance

    Bon courage !
    Section Delphi
    La mine d'or: La FAQ, les Sources

    Un développement compliqué paraitra simple pour l'utilisateur, frustrant non ?
    Notre revanche ? l'inverse est aussi vrai ;-)

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 287
    Points : 91
    Points
    91
    Par défaut
    Apparemment ce n'est possible que si le lecteur réseau est mappé.

    Et dans mon cas je ne veux pas le faire.

    Merci de votre aide, mais je vais essayer de contourner le problème.

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mars 2006
    Messages : 147
    Points : 84
    Points
    84
    Par défaut
    TicTacToe,

    Je pense que ce qu'il veut c'est depuis un PC A, récupérer le chemin "LOCAL" d'un dossier partage sur un PC B.

    Exemple: Sur le PC B, on partage c:\Program Files\Borland avec le nom de partage "Borland". Depuis le PC A, on peut voir \\B\Borland. Mais pour avoir le chemin "LOCAL" de \\B\Borland, c'est à dire "C:\PRogram Files\Borland", il faut utiliser NetShareEnu en lui passant le nom ou l'IP du PC B. Dans mon exemple, il trouvera un SharedRes avec K_SHARE = 'Borland' et PATH = 'C:\Program Files\Borland'...

    Flines

  10. #10
    Membre expert
    Avatar de TicTacToe
    Inscrit en
    Septembre 2005
    Messages
    1 940
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 940
    Points : 3 575
    Points
    3 575
    Par défaut
    Exact, j'ai réalisé après !
    Merci pour la précision.

    donc j'ai toujours pas de solution
    Section Delphi
    La mine d'or: La FAQ, les Sources

    Un développement compliqué paraitra simple pour l'utilisateur, frustrant non ?
    Notre revanche ? l'inverse est aussi vrai ;-)

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mars 2006
    Messages : 147
    Points : 84
    Points
    84
    Par défaut
    Hé bien la solution c'est...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function NetShareEnum(ServerName   : PWideChar; 
                            Level        : DWORD; 
                            bufptr       : Pointer; 
                            PrefMaxLen   : DWORD; 
                            EntriesRead  : PDWORD; 
                            TotalEntries : PDWORD; 
                            Resume_Handle: PDWORD):NET_API_STATUS; 
                            stdcall; external 'NetAPI32.dll' name

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 287
    Points : 91
    Points
    91
    Par défaut
    Bonjour,

    merci pour les réponses
    a partir du code de sinfoni, je l'ai réduit à

    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
     
    ResHandle := 0;
      fResult := NetShareEnum(nil, 2, @ShareInfo, DWORD(MAX_PREFERRED_LENGTH), @ER, @TE, @ResHandle);
      if(fResult <> NERR_SUCCESS)then
       Exit;
      p := Pointer(ShareInfo);
      setlength(list, 0);
      for i := 0 to TE - 1 do
      begin
        share := WideCharToString(PSHARE_INFO_2(p)^.shi2_netname);
        path  := WideCharToString(PSHARE_INFO_2(p)^.shi2_path);
        if path<>'' then path:=', '+path;
        setlength(list, length(list)+1);
        list[i] := (share+path);
        p := p + SizeOf(SHARE_INFO_2);
      end;

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 287
    Points : 91
    Points
    91
    Par défaut
    Il me reste juste un soucis avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    NetApiBufferFree(@ShareInfo);
    que me plante l'appli...

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 287
    Points : 91
    Points
    91
    Par défaut plantage avec NetApiBufferFree
    bonjour,

    j'ai récupéré et modifier un code pour récupérer les chemin complet d'un dossier partagé.

    tout fonctionne bien jusqu'à la commande NetApiBufferFree qui plante purement et simplement l'appli.

    ci-dessous le code. Merci de votre aide
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
     
    unit getshareressource;
     
     
     
    interface
    uses windows, ContNRS, SysUtils;
     
    type
    NET_API_STATUS = DWORD;
      SHARE_INFO_0   = record
        shi0_netname : PWideChar;
      end;
     
        PSHARE_INFO_0  = ^SHARE_INFO_0;
     
         SHARE_INFO_2   = record
        shi2_netname     :  PWideChar;
        shi2_type        :  DWORD;
        shi2_remark      :  PWideChar;
        shi2_permissions :  DWORD;
        shi2_max_uses    :  DWORD;
        shi2_current_uses:  DWORD;
        shi2_path        :  PWideChar;
        shi2_passwd      :  PWideChar;
      end;
     
      PSHARE_INFO_2  = ^SHARE_INFO_2;
     
      function NetShareEnum(ServerName   : PWideChar;
                            Level        : DWORD;
                            bufptr       : Pointer;
                            PrefMaxLen   : DWORD;
                            EntriesRead  : PDWORD;
                            TotalEntries : PDWORD;
                            Resume_Handle: PDWORD):NET_API_STATUS;
                            stdcall; external 'NetAPI32.dll' name 'NetShareEnum';
      function NetApiBufferFree(Buffer: Pointer): NET_API_STATUS;
                            stdcall; external 'NetAPI32.dll' name 'NetApiBufferFree';
     
      function SearchCompleteFolder2(NetWorkFolder : string) : string;
     
     
    implementation
     
    function SearchCompleteFolder2(NetWorkFolder : string) : string;
    const
      MAX_PREFERRED_LENGTH = -1;
      NERR_SUCCESS         = 0;
    var
      ER : DWORD; // enries read
      TE : DWORD; // total entries
      ResHandle : DWORD;
      ShareInfo : PSHARE_INFO_2;
      p         : pChar;
      fResult   : NET_API_STATUS;
      i         : Integer;
      share, path : string;
      server, SharedFolder, Netpath : string;
      serverName : pwidechar;
    begin
      // Search server name, shared folder and the end of the path
      result :=  NetWorkFolder;
      if pos('\\', NetWorkFolder) = 1 then
      begin
        NetPath := copy(NetWorkFolder, 3, length(NetWorkFolder));
        i := pos('\', NetPath);
        Server := '\\' + copy(NetPath, 1, i-1);
        Stringtowidechar(Server, Servername, length(server)+1);
        netPath := copy(NetPath, i+1, length(NetPath));
        i := pos('\', NetPath);
        if i = 0 then
        begin
          Sharedfolder := NetPath;
          NetPath := '';
        end
        else
        begin
          sharedfolder := copy(NetPath, 1, i-1);
          netPath := copy(NetPath, i+1, length(NetPath));
        end;
     
        ResHandle := 0;
        fResult := NetShareEnum(servername, 2, @ShareInfo, DWORD(MAX_PREFERRED_LENGTH), @ER, @TE, @ResHandle);
        if(fResult <> NERR_SUCCESS)then
         Exit;
        p := Pointer(ShareInfo);
        for i := 0 to TE - 1 do
        begin
          share := WideCharToString(PSHARE_INFO_2(p)^.shi2_netname);
          path  := WideCharToString(PSHARE_INFO_2(p)^.shi2_path);
          if upperCase(Share) = uppercase(SharedFolder) then
            Result := path + NetPath;
          p := p + SizeOf(SHARE_INFO_2);
        end;
        NetApiBufferFree(@ShareInfo);
      end;
    end;
     
    end.

  15. #15
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Merci de ne pas confondre le forum Delphi et la touche F8 de l'EDI Delphi.
    Il manque l'allocation mémoire pour ServerName
    [edit]
    Merci d'éviter le multipost

  16. #16
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 664
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 664
    Points : 6 967
    Points
    6 967
    Par défaut
    Regarde AllocMem et FreeMem.

    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. ___ Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.3.2 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.1 Entreprise
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.4)

Discussions similaires

  1. Récupérer chemin complet dossier partagé
    Par sam-sam dans le forum Web & réseau
    Réponses: 3
    Dernier message: 25/01/2011, 13h51
  2. Parcourir un répertoire et stocker son chemin complet
    Par Paloma dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 30/10/2006, 12h29
  3. Répertoire local ou chemin complet
    Par Yepazix dans le forum Langage
    Réponses: 7
    Dernier message: 28/09/2005, 08h54
  4. Réponses: 3
    Dernier message: 27/04/2004, 18h21
  5. Obtenir le chemin complet d'un fichier
    Par pamplemousse_mk2 dans le forum Linux
    Réponses: 3
    Dernier message: 13/08/2003, 23h07

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