【发布时间】:2011-01-12 07:27:09
【问题描述】:
操作系统如何检测外部硬盘驱动器。我的意思是它使了解磁盘的过程或系统调用。 有什么方法可以自动判断是否连接了外置硬盘?
【问题讨论】:
操作系统如何检测外部硬盘驱动器。我的意思是它使了解磁盘的过程或系统调用。 有什么方法可以自动判断是否连接了外置硬盘?
【问题讨论】:
(回答你问题中唯一的问题。)
对于 Windows,您需要创建一个窗口并处理 WM_DEVICECHANGE 消息,特别是 DBT_DEVICEARRIVAL 事件(无需注册即可自动发送)。
要在不创建窗口的情况下从 Python 执行此操作,据我所知,您可以做的最好的事情是定期测试根路径是否存在(如果您需要比 Python 更快地响应,每秒一次可能就足够了不会为你工作):
import os.path
for letter in "ABCDEFGHIJKLMNOPQRSTUVWXYZ":
drive_mounted[letter] = os.path.exists(letter + ":")
(回答问题中的非问题。)
操作系统会检测到 USB/eSATA 设备,因为主板上的 USB/eSATA 控制器会在 CPU 上引发中断。操作系统检测到此中断并询问控制器有关设备、安装任何必要的驱动程序、激活驱动程序、识别安装点(驱动器号)并播放声音效果。
(这些都与 Python 无关,所以我认为它也与这个问题无关。)
【讨论】:
os.path.exists) 之外,我无能为力。要在这种情况发生时做点什么,你的程序只需要一直运行等待这个事件——然后当它发生时它可以做任何事情。或者,您可以使用操作系统的自动启动功能(如果有)让它在连接设备时运行您的程序(尽管 Python 可能不适合这种方法)。相关关键字包括“自动插入通知”、“自动播放”和“自动运行”。