# 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) | |