{"id":21337185,"url":"https://github.com/freeslave/trashcan","last_synced_at":"2026-01-03T13:03:48.251Z","repository":{"id":9358596,"uuid":"61660499","full_name":"FreeSlave/trashcan","owner":"FreeSlave","description":"Move files to trash can in D programming language","archived":false,"fork":false,"pushed_at":"2024-07-18T10:41:41.000Z","size":172,"stargazers_count":6,"open_issues_count":2,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-22T14:45:42.562Z","etag":null,"topics":["d","dlang","freedesktop","recycle-bin","trashcan"],"latest_commit_sha":null,"homepage":"","language":"D","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsl-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FreeSlave.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE_1_0.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-06-21T19:17:13.000Z","updated_at":"2024-10-02T12:43:02.000Z","dependencies_parsed_at":"2024-11-22T00:00:32.192Z","dependency_job_id":"49017290-cb85-4417-a293-f9587d062efb","html_url":"https://github.com/FreeSlave/trashcan","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FreeSlave%2Ftrashcan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FreeSlave%2Ftrashcan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FreeSlave%2Ftrashcan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FreeSlave%2Ftrashcan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FreeSlave","download_url":"https://codeload.github.com/FreeSlave/trashcan/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243814893,"owners_count":20352038,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["d","dlang","freedesktop","recycle-bin","trashcan"],"created_at":"2024-11-22T00:00:26.959Z","updated_at":"2026-01-03T13:03:48.156Z","avatar_url":"https://github.com/FreeSlave.png","language":"D","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Trash can\n[![Build Status](https://github.com/FreeSlave/trashcan/actions/workflows/ci.yml/badge.svg)](https://github.com/FreeSlave/trashcan/actions/workflows/ci.yml)\n[![Windows Build Status](https://ci.appveyor.com/api/projects/status/github/FreeSlave/trashcan?branch=master\u0026svg=true)](https://ci.appveyor.com/project/FreeSlave/trashcan)\n\nTrash can operations implemented in D programming language.\nThe **moveToTrash** function places a passed file or directory to trash can. The **Trashcan** class allows to list trashcan contents, restore or delete items.\n\n[Online documentation](https://freeslave.github.io/trashcan/trashcan.html)\n\n## Platform support and implementation details\n\nOn Freedesktop environments (e.g. GNU/Linux) the library follows [Trash Can Specification](https://www.freedesktop.org/wiki/Specifications/trash-spec/).\n\nOn Windows [SHFileOperation](https://docs.microsoft.com/en-us/windows/win32/api/shellapi/nf-shellapi-shfileoperationw) is used to move files to trash, and [IShellFolder2](https://docs.microsoft.com/en-us/windows/win32/api/shobjidl_core/nn-shobjidl_core-ishellfolder2) is used as an interface to recycle bin to list, delete and undelete items.\n\nOn OSX FSMoveObjectToTrashSync is used to move files to trash. Listing, deleting and undeleting items in the trash can are not currently supported on macOS.\n\nOther platforms are not supported.\n\n## Currently missing features\n\n* Notifying changes in trash can contents (or at least providing the data required to implement this feature for the library user).\n\n## Examples\n\n### [Put to trash can](examples/put.d)\n\nRun to put file or directory to trash can:\n\n    dub examples/put.d path/to/file\n\n### [Manage items in trash can](examples/manage.d)\n\nInteractively delete items from trashcan or restore them to their original location.\n\n    dub examples/manage.d\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffreeslave%2Ftrashcan","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffreeslave%2Ftrashcan","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffreeslave%2Ftrashcan/lists"}