Re: Move-to-trash procedure Lassi Kortela 29 Aug 2019 06:03 UTC
> The author implies that his code may have bitrotted. Apple in > particular keeps the metadata in a binary file whose format is not > documented. What's more, the formats are all very vulnerable to failure. I'm using that specific library on Mac and it works fine. It has to be done by calling OS APIs, not by writing to the trashcan's datastore ourselves. In addition to moving trashed files into the datastore, the OS APIs may do other stuff like trigger notifications, etc. > If we are going to do this, I'd rather have our own portable trash can > service, even though it would be incompatible with the various system > trash cans. A trash directory for each volume (read the output of > `mount`, or on Windows, enumerate al local disks, everyone does that. > But then store the files directly in it with a SQLite database to hold > the metadata. The trashcan is meant for the convenience of desktop users so that all applications put their trash in the same system-wide place (e.g. the trashcan icon in the MacOS Dock and the Windows Desktop - GNOME and KDE probably have equivalents). The desktop provides a conventional icon that users can click to list everything in the trash and have the option of restoring individual files. From that background I would oppose any custom solution, no matter how cleanly implemented it is. We want to eventually enable Schemers to write desktop apps with a native look and feel. That means we should conform to native conventions in these matters as well. (Similar remarks apply to the clipboard - we should call the system APIs to call whatever the system clipboard is. Maybe a clipboard-and-trashcan SRFI would make for a good combo since those APIs are both simple and called by similar means yet deeply system-dependent.) But all this pondering has made it clear that trashcan stuff is definitely outside the scope of fundamental OS SRFIs. There is a clear need to keep "OS" and "desktop" procedures separate.