Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 18, 2018 21:52:00

DamMercul
Зарегистрирован: 2017-11-26
Сообщения: 323
Репутация: +  13  -
Профиль   Отправить e-mail  

win vs. linux

В линуксе все разделы дисков выыражены в файлах. А как это сделано в винде? А то хочу один проект замутить, типо создание смарт карты на 1 из разделов флешки, но на винде это как то по другому. Халп



____________________________________________________

 # Life loop
while alive:
    if (fun > boredom) and money:
        pass_day(fun, boredom, money)
        continue
    else: break

Офлайн

#2 Сен. 19, 2018 10:38:06

Rafik
Зарегистрирован: 2018-09-04
Сообщения: 231
Репутация: +  27  -
Профиль   Отправить e-mail  

win vs. linux

Какую информацию надо получить из-под венды?
Если все подключенные разделы, то есть команда оболочки mountvol /L для получения имён разделов (c:, d: и т.д.). Команду можно вызвать через subprocess. Выхлоп содержит мусор.
Если нужна метка раздела и UUID, то в оболочке делается cd на нужную букву диска и даётся команда dir без аргументов. Где-то в первых строках идёт имя метки раздела и его UUID, затем содержимое папки.
Совсем забыл про хорошую команду vol. Вместо dir можно использовать vol и тогда в выхлопе будут только метка и UUID

Отредактировано Rafik (Сен. 19, 2018 10:42:17)

Офлайн

#3 Сен. 19, 2018 13:45:43

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

win vs. linux

DamMercul
В линуксе все разделы дисков выыражены в файлах. А как это сделано в винде?
ровно так же как и в линуксе , физческий диск разбиваеться на разделы, а как вы уже получаете доступ к разделу, это дело десятое.
если вы подраземеваете что в лине диски видны как /dev/sd… например , то в венде все несколько сложнее.
первое что приходит на ум это команда mountvol, она показывает все доступные разделы и точки их монтирования.

Если ее вызвать она выведет чтото типа такого :
C:\>mountvol
Создание, удаление и просмотр точек подключения.
...
тут идет небольшой хелп, по использованию, но его мы пропустим.
...
Возможные значения имени тома вместе с текущими точками подключения:

\\?\Volume{625c3e44-aa31-11e5-9b24-806e6f6e6963}\
*** НЕТ ТОЧЕК ПОДКЛЮЧЕНИЯ ***

\\?\Volume{625c3e46-aa31-11e5-9b24-806e6f6e6963}\
E:\

\\?\Volume{587e171a-1083-11e7-878a-005056c00008}\
D:\

\\?\Volume{625c3e45-aa31-11e5-9b24-806e6f6e6963}\
C:\

\\?\Volume{587e16ca-1083-11e7-878a-806e6f6e6963}\
S:\
вот с этими путями типа \\?\Volume{бла-бла-бла} уже в принципе можно работать(читать, создавать, изменять, удалять, копироваться файлы-папки), даже если диску, не назначена буква диска или НТФС папка как точка монтирования.
Вся эта херня храниться в HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices но там дохрена мусора, там все девайсы котороые когда либо вообще монтировались. Поэтому целесообразно использовать функции винапи FindFirstVolume, FindNextVolume, они по идее должны возвращать GUID разделов.
https://docs.microsoft.com/en-us/windows/desktop/fileio/enumerating-volumes

А вообще вот немного ликбеза о пространсве имен в венде
https://upread.ru/blog/articles-it/prostranstvo-imen-windows



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Сен. 19, 2018 15:20:55)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version