| 2735 | self._listPath_SMB1(service_name, path, listCB, errback, search = search, pattern = pattern, timeout = timeout) |
| 2736 | |
| 2737 | def _deleteFiles_SMB1__del(self, service_name, tid, path, callback, errback, timeout = 30): |
| 2738 | messages_history = [ ] |
| 2739 | |
| 2740 | def sendDelete(tid): |
| 2741 | m = SMBMessage(ComDeleteRequest(filename_pattern = path, |
| 2742 | search_attributes = SMB_FILE_ATTRIBUTE_HIDDEN | SMB_FILE_ATTRIBUTE_SYSTEM)) |
| 2743 | m.tid = tid |
| 2744 | self._sendSMBMessage(m) |
| 2745 | self.pending_requests[m.mid] = _PendingRequest(m.mid, int(time.time()) + timeout, deleteCB, errback) |
| 2746 | self._pushToArray(messages_history, m) |
| 2747 | |
| 2748 | def deleteCB(delete_message, **kwargs): |
| 2749 | self._pushToArray(messages_history, delete_message) |
| 2750 | if not delete_message.status.hasError: |
| 2751 | callback(path) |
| 2752 | elif delete_message.status.internal_value == 0xC000000F: # [MS-ERREF]: STATUS_NO_SUCH_FILE |
| 2753 | # If there are no matching files, we just treat as success instead of failing |
| 2754 | callback(path) |
| 2755 | elif delete_message.status.internal_value == 0xC00000BA: # [MS-ERREF]: STATUS_FILE_IS_A_DIRECTORY |
| 2756 | errback(OperationFailure('Failed to delete %s on %s: Cannot delete a folder. Please use deleteDirectory() method or append "/*" to your path if you wish to delete all files in the folder.' % ( path, service_name ), messages_history)) |
| 2757 | elif delete_message.status.internal_value == 0xC0000034: # [MS-ERREF]: STATUS_OBJECT_NAME_INVALID |
| 2758 | errback(OperationFailure('Failed to delete %s on %s: Path not found' % ( path, service_name ), messages_history)) |
| 2759 | else: |
| 2760 | errback(OperationFailure('Failed to delete %s on %s: Delete failed' % ( path, service_name ), messages_history)) |
| 2761 | |
| 2762 | sendDelete(tid) |
| 2763 | |
| 2764 | def _resetFileAttributes_SMB1(self, service_name, path_file_pattern, callback, errback, file_attributes=ATTR_NORMAL, timeout = 30): |
| 2765 | raise NotReadyError('resetFileAttributes is not yet implemented for SMB1') |