- ************************************************************************
- FUNCTION c83Address && Version courte (8.3) de l'adresse d'un fichier/dossier EXISTANT
- LPARAMETER tcPath
- LOCAL lcResult
- m.lcResult = Space(0)
-
- * Si le fichier ou le dossier existe
- IF Vartype(m.tcPath) == 'C'
- m.tcPath = Upper(Alltrim(m.tcPath))
- LOCAL llPath
- m.llPath = Directory(m.tcPath)
- IF NOT m.llPath && ce doit être une adresse de fichier
- LOCAL ARRAY laFiles[1]
- m.llPath = ADir(laFiles, m.tcPath) = 1 && file() ne fonctionne pas avec les adresses courtes
- ENDIF
- IF m.llPath
-
- * Lire l'adresse courte
- DECLARE INTEGER GetShortPathName IN Win32API;
- STRING @lpszLongPath, ;
- STRING @lpszShortPath,;
- INTEGER cchBuffer
- LOCAL lnLength, lcShortName, lnResult
- m.lnLength = 260
- m.lcShortName = SPACE (m.lnLength)
- m.lnResult = GetShortPathName(@m.tcPath, @m.lcShortName, m.lnLength)
-
- m.lcResult = Iif(m.lnResult > 0, ;
- LEFT (m.lcShortName, m.lnResult),; && la conversion a réussi
- m.tcPath) && la conversion a échoué : l'adresse spécifiée est 8.3
- ENDIF
- ENDIF
-
- RETURN m.lcResult
************************************************************************
FUNCTION c83Address && Version courte (8.3) de l'adresse d'un fichier/dossier EXISTANT
LPARAMETER tcPath
LOCAL lcResult
m.lcResult = Space(0)
* Si le fichier ou le dossier existe
IF Vartype(m.tcPath) == 'C'
m.tcPath = Upper(Alltrim(m.tcPath))
LOCAL llPath
m.llPath = Directory(m.tcPath)
IF NOT m.llPath && ce doit être une adresse de fichier
LOCAL ARRAY laFiles[1]
m.llPath = ADir(laFiles, m.tcPath) = 1 && file() ne fonctionne pas avec les adresses courtes
ENDIF
IF m.llPath
* Lire l'adresse courte
DECLARE INTEGER GetShortPathName IN Win32API;
STRING @lpszLongPath, ;
STRING @lpszShortPath,;
INTEGER cchBuffer
LOCAL lnLength, lcShortName, lnResult
m.lnLength = 260
m.lcShortName = SPACE (m.lnLength)
m.lnResult = GetShortPathName(@m.tcPath, @m.lcShortName, m.lnLength)
m.lcResult = Iif(m.lnResult > 0, ;
LEFT (m.lcShortName, m.lnResult),; && la conversion a réussi
m.tcPath) && la conversion a échoué : l'adresse spécifiée est 8.3
ENDIF
ENDIF
RETURN m.lcResult