Récuperer le chemin relatif a un nom de partage

Signaler
Messages postés
23
Date d'inscription
mercredi 3 avril 2002
Statut
Membre
Dernière intervention
23 juillet 2004
-
Messages postés
1284
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
-
Salut!

Comment récupérer un chemin a partir d'un nom de partage?
Exemple: J'ai un nom de partage 'PARTAGE' qui correspond a 'c:\Rep1\Rep2'
Comment récupérer par code a partir d'un chemin unc :\\SERVEUR\PARTAGE\Fichier.txt
Ce qui correspond au partage et vice versa recuperer un partage a partir d'un chemin normal (en supposant que le partage existe)?

Please aidez moi

Dabrokezz

8 réponses

Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
31
ExpandUNCFileName renvoie le chemin complet de FileName avec la partie du disque en réseau exprimée au format UNC :
function ExpandUNCFileName(const FileName: string): string;

et sa réciproque, ExpandFileName renvoie le chemin complet de Filename.
function ExpandFileName(const FileName: string): string;

Ces deux fonctions sont déclarées dans l'unité SysUtils.

May Delphi be with you.
Messages postés
23
Date d'inscription
mercredi 3 avril 2002
Statut
Membre
Dernière intervention
23 juillet 2004

Salut, merci de ta réponse delphiprog...

Mais malheureusement ca ne marche pas dans mon cas... ou sinon je ne me sert pas correctement de ces fonctions...

Je vais rentrer plus dans les détails com ca tu pourras me dire ce qui cloche si ca te dérange pas...

Voilà imaginons que je suis sur le serveur... j'ai un chemin donc en local :'c:\Windows\Fichier.txt' si je veux récupérer le chemin sous forme unc je dois faire expanduncfilename('c:\Windows\fichier.txt')...mais la ca me renvoit le meme chemin...misere, j'ai essayer avec expandfilename...pareil...
Donc ca c'est mon premier cas ou il faut que je récupére le chemin unc....

2eme cas, je suis sur le poste client, je récupere dans un ini le chemin local(sur le serveur) de tout a l'heure que j'avais ecris dans un ini, de la est ce que je peux transformer ce chemin ('c:\windows\fichier.txt') sous forme unc (\\SERVEUR\PARTAGE\fichier.txt)... pour pouvoir y acceder via le reseau....

3eme cas: Imaginons que j'ai réussi a écrire ce chemin sous forme unc... et maintenant je veux le transformer en chemin local sur le serveur (donc :'C:\windows\fichier.txt') pour pouvoir ainsi pour mes besoins récupérer la lettre du lecteur...Vu que si j'ai réussi a l'ecrire sous forme unc dans mon ini sur le serveur, je n'aurais plus le format 'c:\....', mais dont j'ai besoin aussi... la aussi j'ai essayé les deux fonctions mais sans succés...

J'espere que je me suis bien expliqué et que tu pourras (ou vous) m'aider et m'expliquer, en tout je te remerci déjà de m'avoir répondu une première fois,
a+

Dabrokezz
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
31
1er cas : c'est logique puisqu'il ny a aucun mappage de ton lecteur C:

2e cas : non et pour les mêmes raisons.(Les mêmes causes produisant toujours les mêmes effets !...)

3e cas : je reste perplexe. Tu réussis à le transformer et tu voudrais retrouver le chemin d'origine et tu n'y arrives pas ? J'avoue que je ne comprends pas bien la question, si tant est qu'il y en ait une.

Rappelons que la notion de partage est différente de cellle de mappage.
On partage des ressources, ici un disque ou un répertoire.
On mappe un lecteur réseau en associant une lettre logique à un chemin sur le réseau.

N'y aurait-il pas confusion quelque part ?

May Delphi be with you.
Messages postés
23
Date d'inscription
mercredi 3 avril 2002
Statut
Membre
Dernière intervention
23 juillet 2004

Salut, oui justement c'est ca mon probleme, j'ai aucun mappage sur les disques j'ai juste un partage de ressource... Donc apparement j'ai un big probleme...c'est ca?

A moins que je connecte un lecteur....

Pour ce qui était du troiseme cas... c'était vraiment une supposition... parce que je ne réussi pas à le transformer...(mais c'était au cas ou pour avoir la solution dans l'autre sens)...

Ce que j'aimerais en fait...C'est si il existe un partage d'un dossier ou d'un disque (dans mon cas 'c:' (mais ca pourrait etre autre chose) c'est récupérer ce nom de partage pour pouvoir construire mon chemin unc... enfin je sais pas si je m'explique bien....

Bref, en gros faudrait que je connecte un lecteur temporairement...sur le 'c:' du serveur (par exemple) puis que de là je me serve de la fonction expanduncfilename...ainsi je récupére mon chemin unc... je l'ecris dans mon ini...et je déconnecte le lecteur aprés comme ca le tour est joué... ca marcherait comme ca?

Et par hazard, est ce que tu (ou vous) saurais comment connecter un lecteur sans passer par une boite de dialogue, en donnant le nom du serveur et le disque a mappé?

En tout cas merci de m'avoir repondu...

a+

Dabrokezz
Messages postés
23
Date d'inscription
mercredi 3 avril 2002
Statut
Membre
Dernière intervention
23 juillet 2004

Re salut,

un petit apport a mes explications...

Voilà... Comment faire, pour a partir d'un chemin qu'on récupére par le voisinage réseau (donc de la forme \\NOMDUPOSTE\NOMDEPARTAGE\Fichier), le
Transformer en 'C:\REP1\REP2\Fichier '(REP1\REP2 étant en fait lié au partage)... Sans passer par des connexions de lecteur du type (k:\Fichier) parce que la en effet en passant par expanduncfilename j'obtiens bien mon chemin unc... mais j'aimerais moi retrouver ce qu'il ya derrière le nom de partage....

Désolé si mes explications ne sont pas claires mais j'arrive pas à epliquer autrement....

Dabrokezz
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
31
Voici quelques éléments de réponse.

Pour réaliser une connection, je peux t'indiquer une piste. Regardes dans les API la fonction : WNetAddConnection2,
"The WNetAddConnection2 function makes a connection to a network resource. The function can redirect a local device to the network resource."

Autrement, "The WNetGetConnection function retrieves the name of the network resource associated with a local device.".

May Delphi be with you.
Messages postés
23
Date d'inscription
mercredi 3 avril 2002
Statut
Membre
Dernière intervention
23 juillet 2004

Merci, je vais essayer!
Et que delphi soit avec moi....lol
a+
Dabrokezz
Messages postés
1284
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
13
Quelques années plus tard...

Merci Delphiprog !!!!

ExpandUNCFileName => C'est tout à fait ce dont j'avais besoin !!!

Simon