OVH Cloud OVH Cloud

GetOpenFileName

2 réponses
Avatar
Bonjour,

j'utilise l'API GetOpenFileName et je voudrais savoir comment avoir les
chemins en noms courts ?

Exemple : "C:\Program~1\test\test.txt" à la place de "C:\Program
Files\test\test.txt"

Merci d'avance.

Damien

2 réponses

Avatar
Jacques93
Bonjour util,
util a écrit :
Bonjour,

j'utilise l'API GetOpenFileName et je voudrais savoir comment avoir les
chemins en noms courts ?

Exemple : "C:Program~1testtest.txt" à la place de "C:Program
Filestesttest.txt"




Tu peux voir les constantes :

OFN_LONGNAMES

et
OFN_NOLONGNAMES

ici :

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/userinput/commondialogboxlibrary/commondialogboxreference/commondialogboxstructures/openfilename.asp

mais c'est lié au type de fenêtre, sinon tu peux utiliser l'API ;

GetShortPathName

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/getshortpathname.asp

Par exemple :

Private Declare Function GetShortPathName Lib "kernel32" Alias _
"GetShortPathNameA" (ByVal lpszLongPath As String, _
ByVal lpszShortPath As String, _
ByVal cchBuffer As Long) As Long

Private Sub Command1_Click()
Dim ShortName As String
Dim lResult As Long

ShortName = Space(256)
lResult = GetShortPathName( _
"C:Program FilesMicrosoft Visual StudioVB98", _
ShortName, Len(ShortName))
If lResult > 0 Then
ShortName = Left(ShortName, lResult)
MsgBox ShortName
End If
End Sub


--
Cordialement,

Jacques.
Avatar
Merci beaucoup c'est exactement ce que je voulais.

Bonne journée.

Damien


"Jacques93" a écrit dans le message de news:

Bonjour util,
util a écrit :
Bonjour,

j'utilise l'API GetOpenFileName et je voudrais savoir comment avoir les
chemins en noms courts ?

Exemple : "C:Program~1testtest.txt" à la place de "C:Program
Filestesttest.txt"




Tu peux voir les constantes :

OFN_LONGNAMES

et
OFN_NOLONGNAMES

ici :

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/userinput/commondialogboxlibrary/commondialogboxreference/commondialogboxstructures/openfilename.asp

mais c'est lié au type de fenêtre, sinon tu peux utiliser l'API ;

GetShortPathName

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/getshortpathname.asp

Par exemple :

Private Declare Function GetShortPathName Lib "kernel32" Alias _
"GetShortPathNameA" (ByVal lpszLongPath As String, _
ByVal lpszShortPath As String, _
ByVal cchBuffer As Long) As Long

Private Sub Command1_Click()
Dim ShortName As String
Dim lResult As Long

ShortName = Space(256)
lResult = GetShortPathName( _
"C:Program FilesMicrosoft Visual StudioVB98", _
ShortName, Len(ShortName))
If lResult > 0 Then
ShortName = Left(ShortName, lResult)
MsgBox ShortName
End If
End Sub


--
Cordialement,

Jacques.