当前位置: 首页>>代码示例>>Python>>正文


Python wintypes.WIN32_FIND_DATAW属性代码示例

本文整理汇总了Python中ctypes.wintypes.WIN32_FIND_DATAW属性的典型用法代码示例。如果您正苦于以下问题:Python wintypes.WIN32_FIND_DATAW属性的具体用法?Python wintypes.WIN32_FIND_DATAW怎么用?Python wintypes.WIN32_FIND_DATAW使用的例子?那么恭喜您, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在ctypes.wintypes的用法示例。


在下文中一共展示了wintypes.WIN32_FIND_DATAW属性的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: scandir_python

# 需要导入模块: from ctypes import wintypes [as 别名]
# 或者: from ctypes.wintypes import WIN32_FIND_DATAW [as 别名]
def scandir_python(path=u'.'):
        """Like os.listdir(), but yield DirEntry objects instead of returning
        a list of names.
        """
        # Call FindFirstFile and handle errors
        if isinstance(path, bytes):
            is_bytes = True
            filename = join(path.decode('mbcs', 'strict'), '*.*')
        else:
            is_bytes = False
            filename = join(path, '*.*')
        data = wintypes.WIN32_FIND_DATAW()
        data_p = ctypes.byref(data)
        handle = FindFirstFile(filename, data_p)
        if handle == INVALID_HANDLE_VALUE:
            error = ctypes.GetLastError()
            if error == ERROR_FILE_NOT_FOUND:
                # No files, don't yield anything
                return
            raise win_error(error, path)

        # Call FindNextFile in a loop, stopping when no more files
        try:
            while True:
                # Skip '.' and '..' (current and parent directory), but
                # otherwise yield (filename, stat_result) tuple
                name = data.cFileName
                if name not in ('.', '..'):
                    if is_bytes:
                        name = name.encode('mbcs', 'replace')
                    yield Win32DirEntryPython(path, name, data)

                data = wintypes.WIN32_FIND_DATAW()
                data_p = ctypes.byref(data)
                success = FindNextFile(handle, data_p)
                if not success:
                    error = ctypes.GetLastError()
                    if error == ERROR_NO_MORE_FILES:
                        break
                    raise win_error(error, path)
        finally:
            if not FindClose(handle):
                raise win_error(ctypes.GetLastError(), path) 
开发者ID:DoTheEvo,项目名称:ANGRYsearch,代码行数:45,代码来源:scandir.py

示例2: _scandir_python

# 需要导入模块: from ctypes import wintypes [as 别名]
# 或者: from ctypes.wintypes import WIN32_FIND_DATAW [as 别名]
def _scandir_python(path=unicode('.')):
            """Like os.listdir(), but yield DirEntry objects instead of returning
            a list of names.
            """
            # Call FindFirstFile and handle errors
            if isinstance(path, bytes):
                is_bytes = True
                filename = join(path.decode('mbcs', 'strict'), '*.*')
            else:
                is_bytes = False
                filename = join(path, '*.*')
            data = wintypes.WIN32_FIND_DATAW()
            data_p = ctypes.byref(data)
            handle = FindFirstFile(filename, data_p)
            if handle == INVALID_HANDLE_VALUE:
                error = ctypes.GetLastError()
                if error == ERROR_FILE_NOT_FOUND:
                    # No files, don't yield anything
                    return
                raise win_error(error, path)

            # Call FindNextFile in a loop, stopping when no more files
            try:
                while True:
                    # Skip '.' and '..' (current and parent directory), but
                    # otherwise yield (filename, stat_result) tuple
                    name = data.cFileName
                    if name not in ('.', '..'):
                        if is_bytes:
                            name = name.encode('mbcs', 'replace')
                        yield Win32DirEntryPython(path, name, data)

                    data = wintypes.WIN32_FIND_DATAW()
                    data_p = ctypes.byref(data)
                    success = FindNextFile(handle, data_p)
                    if not success:
                        error = ctypes.GetLastError()
                        if error == ERROR_NO_MORE_FILES:
                            break
                        raise win_error(error, path)
            finally:
                if not FindClose(handle):
                    raise win_error(ctypes.GetLastError(), path) 
开发者ID:pypa,项目名称:pipenv,代码行数:45,代码来源:scandir.py


注:本文中的ctypes.wintypes.WIN32_FIND_DATAW属性示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。