Modified check of provided mountpoint

Changed FuseVolume#checkProvidedMountPoint to handle FUSE on Windows correctly (WinFSP requires the folder to NOT exist...)
This commit is contained in:
JaniruTEC
2020-07-20 22:00:35 +02:00
parent 902e66906a
commit 341a98848d
2 changed files with 16 additions and 1 deletions
@@ -18,7 +18,9 @@ import javax.inject.Inject;
import java.io.IOException;
import java.nio.file.DirectoryNotEmptyException;
import java.nio.file.DirectoryStream;
import java.nio.file.FileAlreadyExistsException;
import java.nio.file.Files;
import java.nio.file.LinkOption;
import java.nio.file.NotDirectoryException;
import java.nio.file.Path;
import java.nio.file.Paths;
@@ -59,6 +61,18 @@ public class FuseVolume implements Volume {
}
private void checkProvidedMountPoint(Path mountPoint) throws IOException {
//On Windows the target folder MUST NOT exist...
if (SystemUtils.IS_OS_WINDOWS) {
//We must use #notExists() here because notExists =/= !exists (see docs)
if (Files.notExists(mountPoint, LinkOption.NOFOLLOW_LINKS)) {
//File really doesn't exist
return;
}
//File exists OR can't be determined
throw new FileAlreadyExistsException(mountPoint.toString());
}
//... on Mac and Linux it's the opposite
if (!Files.isDirectory(mountPoint)) {
throw new NotDirectoryException(mountPoint.toString());
}