Fdupes-gui v0.2.1

In 2021, I mashed together this quick utility, a very simple gui front-end to fdupes because I needed to clean up a bunch of documents. It was also an experiment in trying out Flutter Desktop.

Last year I released it to the public on github, more as an educational tool for people wanting to see some flutter desktop app source. Because these days, I’m force to work on macOS, I also released a mac version of an app for the first time in my life. 😳

Turns out, there is 1 other person in the world, who used my app. He noticed the app wouldn’t find the fdupes exec if it was launched from the gui. It was a known shortcoming, but this bug report triggered me to make a better effort. 😉

In v0.2.1, when the exec is not found, you can locate it manually. The location is stored so that subsequent launches automatically use fdupes from the specified location.

Available for linux and macOS, windows might follow.

new app: fdupes-gui

A few years ago, I wanted to clear out the duplicates I had in my Google Drive. It’s not a trivial task as deleting files with the same filename does not cut it: I receive tons of generated pdf’s with the same filename and when time is short (or when being lazy 😉), I just save it to Google Drive as is. The inevitable consequence is: one day cleanup is needed. 😁

Anyone familiar with linux might think of the ‘fdupes‘ utility: it not simply compares the filename but, according to the manual:

comparing file sizes and MD5 signatures, followed by a byte-by-byte comparison

Excellent. Except, when you have to go through tons of documents and files, it’s not that practical. So, with my 2021 new year’s resolutions still fresh in my head, I persevered and coded a quick gui mashup.

Workflow

  • The gui presents a list of all file duplicate groups.
  • When you click on a group, you are presented with a list of all duplicates.
  • You inspect what the document is about by clicking on the filename, which opens it with the default viewer for this file type.
  • You rename one of duplicates to the desired final filename by clicking the ‘Edit’ icon.
  • You delete the renaming files using the ‘Trash’ icon.
  • The UI prevents you from deleting the last one 😉

Simple, but effective!

Release

I coded this a few years ago, but apparently never got to publishing the code, or even just a blog post. This weekend, I cleaned up the project and added the macOS platform (originally only linux was supported). I feel weird about supporting macOS, but the world is how it is: if you want to publish your app for iOS, you need to buy Apple hardware..

Find the project on github.