You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Go to file
Mickaël Schoentgen 436686bf0f Windows legacy: fix handling of UNC names
The legacy implementation was not handling UNC names properly:

  Traceback (most recent call last):
    File "", line 6, in <module>
    File "\...\", line 79, in send2trash
      paths = [get_short_path_name(path) for path in paths]
    File "\...\", line 79, in <listcomp>
      paths = [get_short_path_name(path) for path in paths]
    File "\...\", line 62, in get_short_path_name
      raise WindowsError(err_no, FormatError(err_no), long_name[4:])
  OSError: [Errno 123] La syntaxe du nom de fichier, de répertoire ou de volume est incorrecte.: '\\\\SERVER\\folder\\file.txt'
2 years ago
send2trash Windows legacy: fix handling of UNC names 2 years ago
tests Minor fixes to tests 3 years ago
.gitignore Fix some flake8 errors and cleanup 3 years ago
.travis.yml More test fixes 3 years ago
CHANGES.rst Update version and changelog for release 2 years ago
LICENSE Update copyright 6 years ago Include LICENSE in package (#19) 6 years ago
README.rst Expand supported Python versions 3 years ago Bump version 2 years ago
tox.ini Add initial pyobjc version for macOS 2 years ago


Send2Trash -- Send files to trash on all platforms

Send2Trash is a small package that sends files to the Trash (or Recycle Bin) *natively* and on
*all platforms*. On OS X, it uses native ``FSMoveObjectToTrashSync`` Cocoa calls. On Windows, it
uses native ``IFileOperation`` call if on Vista or newer and pywin32 is installed or falls back 
to ``SHFileOperation`` calls. On other platforms, if `PyGObject`_ and `GIO`_ are available, it 
will use this.  Otherwise, it will fallback to its own implementation of the `trash specifications 

``ctypes`` is used to access native libraries, so no compilation is necessary.

Send2Trash supports Python 2.7 and up (Python 3 is supported).

Status: Additional Help Welcome

Additional help is welcome for supporting this package.  Specifically help with the OSX and Linux 
issues and fixes would be most appreciated.


You can download it with pip::

    python -m pip install -U send2trash

or you can download the source from and install it with::

    >>> python install


>>> from send2trash import send2trash
>>> send2trash('some_file')
>>> send2trash(['some_file1', 'some_file2'])

On Freedesktop platforms (Linux, BSD, etc.), you may not be able to efficiently
trash some files. In these cases, an exception ``send2trash.TrashPermissionError``
is raised, so that the application can handle this case. This inherits from
``PermissionError`` (``OSError`` on Python 2). Specifically, this affects
files on a different device to the user's home directory, where the root of the
device does not have a ``.Trash`` directory, and we don't have permission to
create a ``.Trash-$UID`` directory.

For any other problem, ``OSError`` is raised.

.. _PyGObject:
.. _GIO:
.. _trash specifications from