diff --git a/src/main/scala/org/codeoverflow/chatoverflow/connector/actor/FileSystemActor.scala b/src/main/scala/org/codeoverflow/chatoverflow/connector/actor/FileSystemActor.scala index 36d78ad2..514b09bb 100644 --- a/src/main/scala/org/codeoverflow/chatoverflow/connector/actor/FileSystemActor.scala +++ b/src/main/scala/org/codeoverflow/chatoverflow/connector/actor/FileSystemActor.scala @@ -60,7 +60,19 @@ class FileSystemActor extends Actor { } case CreateDirectory(folderName) => try { - sender ! fixPath(folderName).mkdir() + sender ! fixPath(folderName).mkdirs() + } catch { + case _: Exception => sender ! false + } + case Exists(pathInResources) => + try { + sender ! fixPath(pathInResources).exists + } catch { + case _: Exception => sender ! false + } + case Delete(pathInResources) => + try{ + sender ! fixPath(pathInResources).delete } catch { case _: Exception => sender ! false } @@ -124,4 +136,18 @@ object FileSystemActor { */ case class CreateDirectory(folderName: String) extends ActorMessage + /** + * Send a Exists-Object to the FileSystemActor to check if a file or folder exists + * + * @param pathInResources the relative Path in the resource folder + */ + case class Exists(pathInResources: String) extends ActorMessage + + /** + * Send a Delete-Object to the FileSystemActor to remove a file or folder + * + * @param pathInResources the relative Path in the resource folder + */ + case class Delete(pathInResources: String) extends ActorMessage + } diff --git a/src/main/scala/org/codeoverflow/chatoverflow/requirement/service/file/FileConnector.scala b/src/main/scala/org/codeoverflow/chatoverflow/requirement/service/file/FileConnector.scala index 0158ecdb..a01e9506 100644 --- a/src/main/scala/org/codeoverflow/chatoverflow/requirement/service/file/FileConnector.scala +++ b/src/main/scala/org/codeoverflow/chatoverflow/requirement/service/file/FileConnector.scala @@ -34,6 +34,10 @@ class FileConnector(override val sourceIdentifier: String) extends Connector(sou def createDirectory(folderName: String): Boolean = fileActor.??[Boolean](5){CreateDirectory(folderName)}.get + def exists(pathInResources: String): Boolean = fileActor.??[Boolean](5){Exists(pathInResources)}.get + + def delete(pathInResources: String): Boolean = fileActor.??[Boolean](5){Delete(pathInResources)}.get + override def start(): Boolean = { logger info s"Started file connector! Source identifier is: '$sourceIdentifier'." true diff --git a/src/main/scala/org/codeoverflow/chatoverflow/requirement/service/file/impl/FileOutputImpl.scala b/src/main/scala/org/codeoverflow/chatoverflow/requirement/service/file/impl/FileOutputImpl.scala index 7ff78099..3126ed1e 100644 --- a/src/main/scala/org/codeoverflow/chatoverflow/requirement/service/file/impl/FileOutputImpl.scala +++ b/src/main/scala/org/codeoverflow/chatoverflow/requirement/service/file/impl/FileOutputImpl.scala @@ -35,6 +35,14 @@ class FileOutputImpl extends OutputImpl[FileConnector] with FileOutput with With sourceConnector.get.createDirectory(folderName) } + override def exists(pathInResources: String): Boolean = { + sourceConnector.get.exists(pathInResources) + } + + override def delete(pathInResources: String): Boolean = { + sourceConnector.get.delete(pathInResources) + } + override def start() = true }