diff --git a/src/main/scala/li/cil/oc/server/fs/Buffered.scala b/src/main/scala/li/cil/oc/server/fs/Buffered.scala index 0c1ec256a..5c26bcbbd 100644 --- a/src/main/scala/li/cil/oc/server/fs/Buffered.scala +++ b/src/main/scala/li/cil/oc/server/fs/Buffered.scala @@ -88,13 +88,14 @@ trait Buffered extends OutputStreamFileSystem { } deletions.clear() - def recurse(path: String) { + def recurse(path: String):Boolean = { val directory = new io.File(fileRoot, path) directory.mkdirs() + var dirChanged = false for (child <- list(path)) { val childPath = path + child if (isDirectory(childPath)) - recurse(childPath) + dirChanged = recurse(childPath) || dirChanged else { val childFile = new io.File(fileRoot, childPath) val time = lastModified(childPath) @@ -107,10 +108,14 @@ trait Buffered extends OutputStreamFileSystem { out.close() in.close() childFile.setLastModified(time) + dirChanged = true } } } - directory.setLastModified(lastModified(path)) + if (dirChanged) { + directory.setLastModified(lastModified(path)) + true + } else false } if (list("") == null || list("").isEmpty) { fileRoot.delete()