Отвечаю на повторяющийся по мылу вопрос. Итак, "Как же определить букву дисковода по маркерному файлу?"
- Способ "В лоб":
Код:
$TagFile="маркерный файл"
$i = 67
While FileExists( Chr($i) & ":\" & $TagFile )=0 AND $i<=90
$i = $i + 1
WEnd
;искомый дисковод (буква с двоеточием)
$drive=$i & ":"
- Способ "В лоб, но с размышлением ":
Код:
$TagFile="маркерный файл"
;на какого типа дисководах искать маркерный файл
;возможные варианты: "ALL", "CDROM", "REMOVABLE", "FIXED", "NETWORK", "RAMDISK", или "UNKNOWN"
$type="CDROM"
$drvlst=DriveGetDrive ( $type )
If not @error Then
For $i = 1 to $drvlst[0]
If FileExists( $drvlst[$i] & "\" & $TagFile ) Then
;искомый дисковод (буква с двоеточием)
$drive=$drvlst[$i]
ExitLoop
EndIf
Next
EndIf
Ес-но, это далеко не все возможные варианты. В зависимости от исходных данных, для решения подобной задачи, весьма полезными могут оказаться ф-ции
DriveGetLabel,
DriveGetFileSystem,
DriveGetSerial,
DriveGetType,
DriveStatus.