Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для Sanja Alone

Ищу Человека…


Сообщения: 420
Благодарности: 67

Профиль | Сайт | Отправить PM | Цитировать


Отвечаю на повторяющийся по мылу вопрос. Итак, "Как же определить букву дисковода по маркерному файлу?"
  1. Способ "В лоб":
    Код: Выделить весь код
    $TagFile="маркерный файл"
    $i = 67
    While FileExists( Chr($i) & ":\" & $TagFile )=0 AND $i<=90
        $i = $i + 1
    WEnd
    ;искомый дисковод (буква с двоеточием)
    $drive=$i & ":"
  2. Способ "В лоб, но с размышлением ":
    Код: Выделить весь код
    $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.

-------
Sanja Alone's site (ConvRegToAU3, OEsr, RSA, AutoIt скрипты)


Отправлено: 01:48, 15-11-2006 | #475