1

論理パスがあります。例:- path1='C:/abc', path2='E:/xyz'

両方が同じ物理ディスクに存在するかどうかを確認したい。

または、一般的に、関連付けられた物理ドライブに論理パスをマップしたいと考えています。

Linuxでも同じことをしたいと思います。今のところ、「os.stat(path).st_dev」を使用してデバイス ID を取得します。しかし、同じ物理ドライブ上の論理ディスクの ID は異なるようです。だから、実際には私にはうまくいきません。それに対するより良い、または直接的な解決策はありますか。

4

1 に答える 1

1

これは私の問題を解決しました

   key = ''
    for physical_disk in w.Win32_DiskDrive():
    logical_disks = []
    for partition in physical_disk.associators ("Win32_DiskDriveToDiskPartition"):
        for logical_disk in partition.associators ("Win32_LogicalDiskToPartition"):
            key = logical_disk.Description
            if key not in all_logical_disks:
                all_logical_disks[key] = []
            logical_disks.append(logical_disk.Caption)
    if logical_disks:
        all_logical_disks[key].append(logical_disks)

これは、グループ化された {u'Local Fixed Disk': [[u'C:', u'D:'],[u'E:', u'F:']]} というタイプの辞書を取得するのに役立ちました異なる物理ディスクの論理パーティション。これで、論理パスが同じリストにあるかどうかを比較できます。

于 2013-06-19T14:59:02.523 に答える