Get drive letter to file path
Publié : jeu. 25/nov./2010 16:13
Récupérer l'ID d'un lecteur d'après le chemin complet d'un fichier ou dossier
sans avoir à entrer dans les infos de volume.
@+
sans avoir à entrer dans les infos de volume.
Code : Tout sélectionner
Procedure.s GetDriveLetterToFilePath(filepath$)
*Buffer = AllocateMemory(255)
Protected ipt.l , C.l
Global Dim LogicalDrives.s(16) ; pour 16 lecteurs
LogicalDrives(1) = ""
ipt = 1 ; Initialise le compte à 1
For i = 0 To GetLogicalDriveStrings_(255, *Buffer)
C = PeekB(*Buffer + i)
If C <> 0
LogicalDrives(ipt) = UCase(LogicalDrives(ipt) + Chr(C))
Else
ipt = ipt + 1
LogicalDrives(ipt) = ""
EndIf
Next
While LogicalDrives(ipt) = ""
ipt = ipt - 1
Wend
For i = 1 To ipt
Drivlet$ = LogicalDrives(i)
If FindString(filepath$,Drivlet$,1)
ProcedureReturn Drivlet$
Break
EndIf
Next
FreeMemory(*Buffer)
EndProcedure
;Test
Debug GetDriveLetterToFilePath(UCase("c:\Users\MyName\Bluk\"))