Meilleur auteur de réponses
Obtenir le nom en 8.3 avec VB 2008

Question
-
Bonjour,
en VB 6 on utilisait ceci :
Dim Fso As Object = CreateObject("Scripting.FileSystemObject")
Dim objFile = Fso.GetFile("C:\...")Puis :
TextBoxNomCourt.Text = objFile.ShortPath
N'y a-t-il pas une solution meilleure en VB 2008 ? Scripting.FileSystemObject commence à se faire vieux.
Merci
Réponses
-
Merci Jacques !
Il y avait une petite erreur Strings au lieu de Str. La ligne d'imports n'est pas obligatoire.
Private Declare Function GetShortPathName Lib "kernel32" Alias
"GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As
String, ByVal lBuffer As Int32) As Int32Public Function GetShortPath(ByVal strPath As String) As String
Dim lngRes As Int32, strBuffer As String
strBuffer = Strings.Space(255)
lngRes = GetShortPathName(strPath, strBuffer, 254)
GetShortPath = Strings.Left(strBuffer, lngRes)
End FunctionExemple d'utilisation :
MsgBox(GetShortPath("C:|Program Files"))
Encore merci !
- Marqué comme réponse Michel56100 dimanche 4 août 2013 21:08
Toutes les réponses
-
-
-
Bonjour,
Il faut utiliser les API ... :
À tester
Imports Microsoft.VisualBasic.Strings
Private Declare Function GetShortPathName Lib "kernel32" Alias
"GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As
String, ByVal lBuffer As Int32) As Int32Public Function GetShortPath(ByVal strPath As String) As String
Dim lngRes As Int32, strBuffer As String
strBuffer = Str.Space(255)
lngRes = GetShortPathName(strPath, strBuffer, 254)
GetShortPath = Str.Left(strBuffer, lngRes)
End FunctionExemple d'utilisation :
MsgBox(GetShortPath("c:Program Files"))
Jacques
Si la réponse vous satisfait, n'oubliez pas de la proposer comme réponse. Merci- Proposé comme réponse Jacques93 dimanche 4 août 2013 20:04
-
Merci Jacques !
Il y avait une petite erreur Strings au lieu de Str. La ligne d'imports n'est pas obligatoire.
Private Declare Function GetShortPathName Lib "kernel32" Alias
"GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As
String, ByVal lBuffer As Int32) As Int32Public Function GetShortPath(ByVal strPath As String) As String
Dim lngRes As Int32, strBuffer As String
strBuffer = Strings.Space(255)
lngRes = GetShortPathName(strPath, strBuffer, 254)
GetShortPath = Strings.Left(strBuffer, lngRes)
End FunctionExemple d'utilisation :
MsgBox(GetShortPath("C:|Program Files"))
Encore merci !
- Marqué comme réponse Michel56100 dimanche 4 août 2013 21:08