def get_info(self, path, buffer, file_info): if file_info.context: if path in self.files.keys(): buffer[0].dwFileAttributes = FILE_ATTRIBUTE_NORMAL win_size = SizeConvert(len(self.files[path])).convert() buffer[0].nFileSizeHigh = win_size[0] buffer[0].nFileSizeLow = win_size[1] buffer[0].nNumberOfLinks = 1 win_index = SizeConvert(2).convert() buffer[0].nFileIndexHigh = win_index[0] buffer[0].nFileIndexLow = win_index[1] elif path == '\\': buffer[0].dwFileAttributes = FILE_ATTRIBUTE_DIRECTORY buffer[0].nFileSizeHigh = 0 buffer[0].nFileSizeLow = 0 buffer[0].nNumberOfLinks = 1 win_index = SizeConvert(1).convert() buffer[0].nFileIndexHigh = win_index[0] buffer[0].nFileIndexLow = win_index[1] dt_converter = DateTimeConvertor(datetime.today()) dc = dt_converter.convert() buffer[0].ftCreationTime = dc buffer[0].ftLastAccessTime = dc buffer[0].ftLastWriteTime = dc buffer[0].dwVolumeSerialNumber = self.serial_number return 0 else: return -ERROR_INVALID_HANDLE
def find_files_with_pattern(self, path, pattern, func, file_info): file_info_raw = file_info.raw() if file_info.context: if path == '\\': dc = DateTimeConvertor(datetime.today()).convert() for i in self.files.keys(): if self.name_in_expression(pattern, i, False): win_size = SizeConvert(len(self.files[i])).convert() info = WIN32_FIND_DATAW(FILE_ATTRIBUTE_NORMAL, dc, dc, dc, win_size[0], win_size[1], 0, 0, i[1:], '') func(PWIN32_FIND_DATAW(info), file_info_raw) return 0 else: return -ERROR_INVALID_HANDLE