Fileside
An accelerating car

Release notes 1.3.1

By Erik Jälevik on 26 June 2021

Moves are now much faster in most common scenarios.

There is a tradeoff between accurate progress reporting and efficient file transfers. Fileside very much erred on the side of the former up until now. 1.3.1 rewrites the algorithm for copying and moving files while resolving conflicts, to allow faster moves in the vast majority of cases.

Even if nothing’s changed on the surface, this release contains a considerable reorganisation under the hood, providing a much better foundation for future enhancements.

Improvements

Faster moves

In order to report progress accurately, and to resolve file conflicts correctly, Fileside used a rather non-optimal algorithm for moving large hierarchies of files up until now.

It used a two-step process. It would first step through every folder within the selection to be moved, querying the size for each file, and add up the total number of files as well as the total size in bytes.

Then it would carry out the actual moving in the same way, by recursing down through each folder, handling potential file conflicts as it went, and moving each file one by one.

While logical enough, this fails to take advantage of the fact that operating systems have a very fast way of moving whole folder hierarchies, as long as both source and destination are on the same drive, through the use of renaming. Renaming one parent folder is much faster than stepping through it and renaming each file contained within.

Of course, this method can only be used as long as we know upfront that there are no file conflicts to handle. However, this is likely to be the most common case in actual usage, so it makes sense to start with this optimistic assumption.

Hence, Fileside now assumes that there will be no conflicts when moving a folder, and attempts to rename the whole folder. Only if a folder with the same name exists in the target, does it step into it, to resolve file conflicts at the next level down. This process is repeated at each deeper level, so that further nested subfolders are also renamed wholesale, unless there is a conflict.

While this massively speeds things up in the common case, it can lead to some wonky progress reporting when merging folders. Due to our initial optimistic assumption, we skip the step of adding up all the sizes beforehand. But if we find a conflict, we then have to increase the total number of items to be transferred. This can lead to the progress bar apparently moving backwards when many conflicted folders are discovered as we go. But I think that’s a price most people would be willing to pay for a faster move.

Allow undoing a failed transfer

If a large transfer fails somewhere in the middle, it is now possible to undo the partial work that did get completed. This can come in handy for backing out of a complicated merge.

Bug fixes

Symlinks that point to a target file or directory that has since been removed could cause some trouble in previous versions. They can now be copied and moved without error.

Windows does not allow creating symlinks on mapped network drives. Fileside would previously fail here. Now it will fall back to copying the target file that the symlink references instead.

Allow deleting read-only folders on Windows

Explorer allows deletion of folders with the read-only attribute set without complaint. Fileside now follows its example.

Less log spew

Fixed a bug where every assert attempt would get printed to the log file even though the assert validated just fine. In fact, asserts have now been completely eliminated from production builds, as they should have been from the beginning.

Looking for a better file manager?

Fileside is a modern multi-pane file manager for Mac and Windows.

Its customisable workspaces of tiled panes make it a breeze to keep your projects and collections organised.

Learn moreTry it now
Laptop showing Fileside running

More from the blog


A construction worker in the alps

The plan for Fileside 2

Over the past year I’ve had a steady stream of emails asking if a Fileside version 2 is coming. One even wondered whether the project is still being maintained. The short answer is yes. Fileside 2.0 is deep in…

A soaring bird of prey

Four weeks of voice computing - here's what I learnt

After a recent flare-up of RSI-related wrist pain, I decided to make a serious attempt at becoming proficient at speech computing. My hope was to be able to add an alternative input method in order to offload my hands, and allow them some rest even during my daily work. I’m now four weeks in and this post summarises my impressions. The journey has had its fair share of frustrations, but also brought some surprising insights.

A floating disc atop a tower

Full Disk Access - what is it and what does it do?

A quick search for “Full Disk Access” reveals plenty of results, although some are misleading if not outright dishonest. Many come from application vendors suggesting that if we don’t grant their Mac apps Full Disk Access, they might not work as intended. In fact, the vast majority of applications should have no reason to need Full Disk Access.

A weird world of paths

The weird world of Windows file paths

File system paths on Windows are stranger than you might think. On any Unix-derived system, a path is an admirably simple thing: if it starts with a /, it’s a path. Not so on Windows, which serves up a bewildering variety of schemes for composing a path.

Navigate

Connect

Send email to
erik@fileside.app
Follow development at
erkjlvk.bsky.social

Subscribe

Sign up for the mailing list to receive important Fileside news and updates.

Built organically by Erik Jälevik in Berlin.
Privacy, Legal & Impressum |© 2025 All rights reserved