【问题标题】:win32file.createFile "The System cannot find the specified path"win32file.createFile "系统找不到指定路径"
【发布时间】:2012-07-23 22:51:06
【问题描述】:

我正在使用win32file.CreateFile() 打开我在进程资源管理器中看到的“文件”。 有问题的文件是(如 proc explorer 的句柄和 dll 视图中所示):“\Device\ccSet_{}”

第一季度。任何人都可以阐明什么是 \Device\<file name> 。我相信这些显然不是存储在某处硬盘上的文件。除非我错了,否则它们是什么?

第二季度。当我尝试在 win32file.CreateFile() 中按原样使用路径时,它给了我一个错误“系统找不到指定的路径或文件”。我哪里错了。

第三季度。给定上述文件对象的地址(同样来自 proc explorer),我可以在不指定路径的情况下读取文件吗?

我使用的单行代码是:

>>> win32file.CreateFile("Device\<filename>",w
in32con.GENERIC_READ|win32con.GENERIC_WRITE,win32con.FILE_SHARE_READ|win32con.FI
LE_SHARE_WRITE,None,win32con.OPEN_EXISTING,0,0)

【问题讨论】:

    标签: python file winapi


    【解决方案1】:
    1. \Device\XXX 名称是内部 Windows NT 设备名称。
    2. \\.\ 前缀将访问 Win32 设备命名空间而不是 Win32 文件命名空间。例如,要打开 COM10,您需要使用 \\.\COM10
    3. 句柄仅在打开它的进程内有效。

    【讨论】:

    • “句柄仅在打开它的进程内有效”:仅当我尝试使用 CreateFile() 时,此语句是否正确?我问这个是因为,我能够复制和关闭有问题的句柄。
    • 确实,DuplicateHandle 可以用来解决这个限制。
    猜你喜欢
    • 1970-01-01
    • 2011-02-23
    • 2018-12-12
    • 2016-04-23
    • 2017-01-04
    • 2014-04-24
    • 2017-03-03
    • 2021-01-05
    相关资源
    最近更新 更多