diff --git a/src/main/java/org/cryptomator/common/mount/Mounter.java b/src/main/java/org/cryptomator/common/mount/Mounter.java index 2c75d3f89..97fc93f08 100644 --- a/src/main/java/org/cryptomator/common/mount/Mounter.java +++ b/src/main/java/org/cryptomator/common/mount/Mounter.java @@ -81,6 +81,7 @@ public class Mounter { var canMountToDriveLetter = service.hasCapability(MOUNT_AS_DRIVE_LETTER); var canMountToParent = service.hasCapability(MOUNT_WITHIN_EXISTING_PARENT); var canMountToDir = service.hasCapability(MOUNT_TO_EXISTING_DIR); + var mpIsDriveLetter = userChosenMountPoint.toString().matches("[A-Z]:\\\\"); if (userChosenMountPoint == null) { if (service.hasCapability(MOUNT_TO_SYSTEM_CHOSEN_PATH)) { @@ -96,7 +97,7 @@ public class Mounter { builder.setMountpoint(mountPoint); } } else { - if (canMountToParent && !canMountToDir) { + if (!mpIsDriveLetter && canMountToParent && !canMountToDir) { MountWithinParentUtil.prepareParentNoMountPoint(userChosenMountPoint); cleanup = () -> { MountWithinParentUtil.cleanup(userChosenMountPoint); @@ -105,7 +106,6 @@ public class Mounter { try { builder.setMountpoint(userChosenMountPoint); } catch (IllegalArgumentException e) { - var mpIsDriveLetter = userChosenMountPoint.toString().matches("[A-Z]:\\\\"); var configNotSupported = (!canMountToDriveLetter && mpIsDriveLetter) || (!canMountToDir && !mpIsDriveLetter) || (!canMountToParent && !mpIsDriveLetter); if (configNotSupported) { throw new MountPointNotSupportedException(e.getMessage());