From 9107d296c3385aa328bafac5438dabb526f32d0e Mon Sep 17 00:00:00 2001 From: infeo Date: Mon, 9 Apr 2018 18:07:04 +0200 Subject: [PATCH] fixes partially #660 --- .../java/org/cryptomator/ui/model/FuseVolume.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/main/ui/src/main/java/org/cryptomator/ui/model/FuseVolume.java b/main/ui/src/main/java/org/cryptomator/ui/model/FuseVolume.java index e1c6907d6..553300415 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/model/FuseVolume.java +++ b/main/ui/src/main/java/org/cryptomator/ui/model/FuseVolume.java @@ -2,6 +2,7 @@ package org.cryptomator.ui.model; import java.io.IOException; import java.nio.file.DirectoryNotEmptyException; +import java.nio.file.DirectoryStream; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; @@ -70,8 +71,16 @@ public class FuseVolume implements Volume { private String createDirIfNotExist(String prefix, String dirName) throws IOException { Path p = Paths.get(prefix, dirName + vaultSettings.getId()); - if (Files.isDirectory(p) && !Files.newDirectoryStream(p).iterator().hasNext()) { - throw new DirectoryNotEmptyException("Mount point is not empty."); + if (Files.isDirectory(p)) { + try(DirectoryStream emptyCheck = Files.newDirectoryStream(p)){ + if(emptyCheck.iterator().hasNext()){ + throw new DirectoryNotEmptyException("Mount point is not empty."); + } + else { + LOG.info("Directory already exists and is empty. Using it as mount point."); + return p.toString(); + } + } } else { Files.createDirectory(p); return p.toString();