コンピューターに接続されているリムーバブルドライバーのリストを取得したいのですが。
レジストリを使えばできると思いますが、正確にはわかりません。
別の方法があれば、私はそれについて聞きたいです。
注:リムーバブルドライブを固定ドライブから分離できることが重要です。
アルゴリズムは単純です。
これは、Python(pywin32ラッパーを使用)での外観です。 win32con.DRIVE_*
定数のいずれかをdrive_typesタプルに追加して、さまざまなドライブタイプの組み合わせを取得します。
code.py:
import sys
import win32con
from win32api import GetLogicalDriveStrings
from win32file import GetDriveType
def get_drives_list(drive_types=(win32con.DRIVE_REMOVABLE,)):
drives_str = GetLogicalDriveStrings()
drives = [item for item in drives_str.split("\x00") if item]
return [item[:2] for item in drives if drive_types is None or GetDriveType(item) in drive_types]
def main():
drive_filters_examples = [
(None, "All"),
((win32con.DRIVE_REMOVABLE,), "Removable"),
((win32con.DRIVE_FIXED, win32con.DRIVE_CDROM), "Fixed and CDROM"),
]
for (drive_types_Tuple, display_text) in drive_filters_examples:
drives = get_drives_list(drive_types=drive_types_Tuple)
print("{:s} drives:".format(display_text))
for drive in drives:
print("{:} ".format(drive), end="")
print("\n")
if __== "__main__":
print("Python {:s} on {:s}\n".format(sys.version, sys.platform))
main()
出力:
(py35x64_test) e:\Work\Dev\StackOverflow\q041465580>"e:\Work\Dev\VEnvs\py35x64_test\Scripts\python.exe" code.py Python 3.5.4 (v3.5.4:3f56838, Aug 8 2017, 02:17:05) [MSC v.1900 64 bit (AMD64)] on win32 All drives: C: D: E: F: G: H: Removable drives: D: Fixed and CDROM drives: C: E: F: G: H: