| # Copyright 2017 Virgil Dupras | |
| # This software is licensed under the "BSD" License as described in the "LICENSE" file, | |
| # which should be included with this package. The terms are also available at | |
| # http://www.hardcoded.net/licenses/bsd_license | |
| from Foundation import NSFileManager, NSURL | |
| from send2trash.compat import text_type | |
| from send2trash.util import preprocess_paths | |
| def check_op_result(op_result): | |
| # First value will be false on failure | |
| if not op_result[0]: | |
| # Error is in third value, localized failure reason matchs ctypes version | |
| raise OSError(op_result[2].localizedFailureReason()) | |
| def send2trash(paths): | |
| paths = preprocess_paths(paths) | |
| paths = [path.decode("utf-8") if not isinstance(path, text_type) else path for path in paths] | |
| for path in paths: | |
| file_url = NSURL.fileURLWithPath_(path) | |
| fm = NSFileManager.defaultManager() | |
| op_result = fm.trashItemAtURL_resultingItemURL_error_(file_url, None, None) | |
| check_op_result(op_result) | |