From ea9621389bfa62cb4e63688249c52ac0e41ff282 Mon Sep 17 00:00:00 2001 From: Joel Klinghed Date: Mon, 14 Oct 2024 21:41:06 +0200 Subject: Add tests for create dir/file/link that already exists Fix implementations to work as expected (that createDirectory/File/Link fails if an entry with that name already exists). --- .../src/main/java/org/the_jk/cleversync/io/local/PathDirectory.kt | 3 +++ 1 file changed, 3 insertions(+) (limited to 'libs/local/src') diff --git a/libs/local/src/main/java/org/the_jk/cleversync/io/local/PathDirectory.kt b/libs/local/src/main/java/org/the_jk/cleversync/io/local/PathDirectory.kt index 9899f02..516d5ed 100644 --- a/libs/local/src/main/java/org/the_jk/cleversync/io/local/PathDirectory.kt +++ b/libs/local/src/main/java/org/the_jk/cleversync/io/local/PathDirectory.kt @@ -9,6 +9,7 @@ import org.the_jk.cleversync.io.File import org.the_jk.cleversync.io.ModifiableDirectory import org.the_jk.cleversync.io.ModifiableFile import org.the_jk.cleversync.io.ModifiableLink +import java.nio.file.FileAlreadyExistsException import java.nio.file.LinkOption import java.nio.file.NoSuchFileException import java.nio.file.Path @@ -17,6 +18,7 @@ import kotlin.io.path.createDirectory import kotlin.io.path.createSymbolicLinkPointingTo import kotlin.io.path.deleteIfExists import kotlin.io.path.deleteRecursively +import kotlin.io.path.exists import kotlin.io.path.isDirectory import kotlin.io.path.isRegularFile import kotlin.io.path.isSymbolicLink @@ -82,6 +84,7 @@ internal open class PathDirectory( override fun createFile(name: String): ModifiableFile { val path = path.resolve(name) + if (path.exists(options = arrayOf(LinkOption.NOFOLLOW_LINKS))) throw FileAlreadyExistsException(name) return PathFile(path) } -- cgit v1.2.3-70-g09d2