當前位置: 首頁>>代碼示例>>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;未經允許,請勿轉載。