Chemin avec espace

Résolu
Messages postés
637
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
9 janvier 2017
-
Messages postés
637
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
9 janvier 2017
-
Bonjour,

Un fichier peut être référencé par sont chamin avec des espaces (ex: c:\le chemin du fichir\mon fichier est fichiet.txt )

Avec fileexists ()  la réponse est true.

Par contre en ouvrant ,avec shellexecute, ce même fichier ,avec les éspaces, il n'y arrive pas. ?

Comment être sure qu'avec shellexecute  il soit possible d'ouvrir un ficheir , ou l'executer, même si le chemin est constitué avec une chaîne avec des éspaces et quelque soit windows ?.

yvessimon

7 réponses

Messages postés
1418
Date d'inscription
samedi 12 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2010
13
Essaye avec un léger changement de paramètres
ShellExecute( 0, nil, PChar('"'+FileName+'"'), nil, nil, SW_SHOW );

@+
Nico {www.ni69.info}

<hr size="2" width="100%" />
N'oubliez pas de cliquer sur Réponse Acceptée lorsque la réponse vous convient !
Messages postés
418
Date d'inscription
mardi 3 janvier 2006
Statut
Membre
Dernière intervention
26 novembre 2013
4
Salut yvessimon,

ShellExecute fonctionne parfaitement avec un chemin contenant des espaces, des caractères accentués... (testé avec Delphi 7 sous XP home).
Ton problème doit donc se situer autre part...

Thierry
Messages postés
1418
Date d'inscription
samedi 12 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2010
13
Précaution à prendre pour chaque ouverture de fichier dans un programme :
Ajouter des guillements autour du nom du fichier pour assurer la compatibilité avec les noms de fichier longs !!

PS : quelle est ta syntaxe d'exécution de ShellExecute? Parce-que une mauvaise syntaxe pourrait entraîner des erreurs ou des résultats inattendus...

@+
Nico {www.ni69.info}

<hr size="2" width="100%" />
N'oubliez pas de cliquer sur Réponse Acceptée lorsque la réponse vous convient !
Messages postés
637
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
9 janvier 2017

La syntaxe d'exécution est


shellExecute(handle, 'open',PChar(Cs),nil,nil,sw_show)


Salutations
yvessimon
Messages postés
1418
Date d'inscription
samedi 12 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2010
13
PS : regarde aussi la valeur du message d'erreur de retour de la fonction pour plus de précision sur ton problème...
Plus d'infos sur MSDN

@+
Nico {www.ni69.info}

<hr size="2" width="100%" />
N'oubliez pas de cliquer sur Réponse Acceptée lorsque la réponse vous convient !
Messages postés
1727
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
6 novembre 2021
8
"c:\le chemin du fichir\mon fichier est fichiet.txt"


Bon, chais pas trop pourquoi, moi je sens la fôte de saisie...  as-tu vérifié cette possiblilité ?

Sinon ça devrait marcher, y'a pas de raison.

Bonne prog'
Messages postés
637
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
9 janvier 2017

Effectivement dans l'exemple il faut lire :
"c:\le chemin du fichier\mon fichier est fichier.txt"
C'est pour cela que fileexists() trouve bien le fichier et que mon ShellExecute(....) n'arrive pas au bon résultat.
mais avec les " " tout retre dans l'ordre.

yvessimon