Как сохранить файл на Mac с помощью Compose Multiplatform for Desktop
Я пытаюсь сохранить текстовый файл с журналами приложений в моем мультиплатформенном проекте компоновки на Mac, но он работает только с отладочными сборками. Распространяемая версия создает исключение во время выполнения.
Если я создам дистрибутив через
gradle packageDmg
и я открываю сгенерированное приложение, я получаю следующее исключение:
java.nio.file.FileSystemException: /logs: Read-only file system
Приложение пытается создать папку относительно своего пути с именем
logs
где он должен поставить
txt
файл.
Если я запускаю его локально через IntelliJ IDEA, он создает файл в указанной папке, как и ожидалось.
Это код, который я запускаю:
import java.io.FileOutputStream
import java.text.SimpleDateFormat
import java.util.*
object FileUtils {
fun getOrCreateFile(dirName: String, fileName: String): File {
Paths.get(dirName).createDirectories()
val file = Paths.get(dirName, fileName)
if (!Files.exists(file)) {
file.createFile()
}
return file.toFile()
}
}
fun saveLogsToFile(text: String) {
val today = SimpleDateFormat("dd-M-yyyy").format(Date())
val file = FileUtils.getOrCreateFile(
"logs",
"$today.txt"
)
FileOutputStream(file, true).bufferedWriter().use { fileWriter ->
fileWriter.write(text + "\n")
}
}