Blog

Why FileUtils

July 01, 2024

As a default file manager in macOS, Finder is used by probably every Mac user on the planet. It is good enough for most people, especially since we move to the concept of manipulating "content" instead of "files", the trend started by mobile platforms and slowly gaining its ground in desktop computing as well. There is still a lot to desire when it comes to Finder's functionality, flexibility and extensibility (and speed too!) and for those who needs additional bells and whistles, there are dozen of alternative file managers for macOS, developed and offered mostly by small and independent Mac software developers. You can check out those yourself, eventually pick your favorite and use it to gain additional features and flexibility manipulating files, which Finder cannot provide.

Still, no matter how often I use an alternate file manager and constantly tracking progress of development of most of them, I still find myself manipulating files in Finder very often. Finder is just convenient. It’s always there, ready to be put into action. There are also some things, for which Finder is practically a must, since alternative file managers cannot do them due to lack of Apple support (private APIs, undocumented features changing unannounced, even with minor OS updates). Working with files in iCloud Drive and using Time Machine are some of those things, which come to mind. If only Finder could do just a few additional and more advanced things, like proper and full POSIX permission setting, or Access Control List (ACL), maybe showing a checksum of the selected file…

That’s where FileUtils comes from. About a decade ago, Apple came up with official way and API to extend Finder functionality, in a way that developers could add additional actions performed on files selected in Finder, invoked with additional, custom contextual menu items (actually, adding contextual menu items was possible a long time ago, before macOS 10.6 Snow Leopard, but it required tons of Carbon code and was eventually deprecated when going 64-bits). FileUtils does exactly that. While the application is running, you will notice some additional menu items in Finder’s contextual menu (and dedicated FileUtils toolbar item menu too). Each additional item invokes a particular action on files selected in Finder, action Finder cannot do on its own.

FileUtils started as something I needed in my own everyday file manipulation. A big deal of its functionality is already available executing appropriate commands in the Terminal. However, I wanted something to serve the same purpose while I’m already browsing files in Finder window(s). It’s quick and easy, select file(s), right-click to show the contextual menu, click the menu item and there you go, a new command or operation executes without ever leaving Finder. Over time, I was adding more and more commands and operations, polishing performance and functionality, but also making user interface better (more beautiful :-)). At one point, I figured other people could make use of what I have created. Since by that moment many hours had already been spent on the project, I decided to (try to) commercialize it and offer it as a paid product. But with extremely generous free/trial version functionality!

The current set of available functionality and operations reflect my most common needs, plus a few extras for good measure. The idea is for that set to be ever growing and involving category, with plans of constantly adding new features, functionality and operations. User feedback should have a huge role in it, so I encourage you to come forward with ideas of what could be added to FileUtils. My intention is to make it useful to the widest audience possible.

Before I leave you to explore and hopefully enjoy FileUtils, a few notes about different available binary versions. You have probably already noticed that FileUtils is available as three different binaries; non-Sandboxed, Sandboxed and Mac Apple Store (MAS). There is an explanation about reasons for it on the support page, but I will repeat it here for completeness.

FileUtils provides advanced file operations and utilities and since it operates as a Finder extension, it's natural it should access all files that Finder can access. In that regard, using the non-sandboxed version of FileUtils seems like the most logical thing to do. Non-sandboxed version of FileUtils can access all files on your disks and you will see FileUtils's menu commands in Finder's contextual and toolbar action menus for every file you can see in Finder.

However, some people still prefer sandboxed applications, they prefer an application to access only the files a user has consensually given access to. Sandboxed version of FileUtils is intended for such audience. It can access only files and folders a user has allowed FileUtils to access. Defining which files sandboxed version can access is done in FileUtils settings, more precisely in FileUtils > Settings… > Folders. This setting is available only in sandboxed and MAS versions of FileUtils. For more details, see the support page, FAQ section, first question, Why three different versions: non-sandboxed, sandboxed and Mac App Store?

Mac App Store (MAS) version of FileUtils is exactly the same as the sandboxed version, with additional limitation of not being able to execute operations which require privileges escalation. That usually happens when logged-in user has insufficient access rights to execute a specific operation on a file and macOS shows a prompt panel, asking for administrator's username and password. Applications which can escalate privileges are not allowed in MAS by Apple. In such cases, instead of showing the prompt for administrator's credentials, MAS version of FileUtils shows an appropriate access denied error, with additional anchor with detailed explanation about this specific error.

FileUtils is in its very infancy. There are probably many things to be improved, besides adding new commands and operations. And there are probably many hidden bugs waiting to show their ugly heads and eventually be fixed. If you encounter any of those, don't hesitate to voice your thoughts and comments, contact the support. You can use the contact form on the support page, or contact us directly by email. I hope the day of official launch of FileUtils is just the beginning of what I hope to be an exciting journey.

← All articles