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\"))
@+
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Ben euh... simplement pour être sûr que le volume existe
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Procedure.l VerifVolumeExist(Drive$)
If ExamineDirectory(0,Drive$,"*.*")
If IsDirectory(0) <> 0
ProcedureReturn 1
Else
ProcedureReturn 0
EndIf
FinishDirectory(0)
EndIf
EndProcedure
;Test
Filename$ = "c:\Users\MyName\Bluk\Blonk.txt"
Drive$ = Left(UCase(Filename$),1)+":\"
If VerifVolumeExist(Drive$) = 1
Debug "Le support "+Drive$+" a été trouvé et est valide."
Else
Debug "Le support "+Drive$+" est invalide, vérifiez votre nom de fichier."
EndIf
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.