Найти - Пользователи
Полная версия: win vs. linux
Начало » Python для новичков » win vs. linux
1
DamMercul
В линуксе все разделы дисков выыражены в файлах. А как это сделано в винде? А то хочу один проект замутить, типо создание смарт карты на 1 из разделов флешки, но на винде это как то по другому. Халп
Rafik
Какую информацию надо получить из-под венды?
Если все подключенные разделы, то есть команда оболочки mountvol /L для получения имён разделов (c:, d: и т.д.). Команду можно вызвать через subprocess. Выхлоп содержит мусор.
Если нужна метка раздела и UUID, то в оболочке делается cd на нужную букву диска и даётся команда dir без аргументов. Где-то в первых строках идёт имя метки раздела и его UUID, затем содержимое папки.
Совсем забыл про хорошую команду vol. Вместо dir можно использовать vol и тогда в выхлопе будут только метка и UUID
PEHDOM
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
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB