FileHelper

class FileHelper(context: Context)(source)

Centralized file helper for Android (MediaStore + Storage Access Framework).

Provides two main approaches:

  • MediaStore (API 29+): For writing to public folders without explicit storage permissions.

  • SAF (Storage Access Framework): System file picker for reading/creating files.

Example usage:

val fileHelper = FileHelper(context)

// Save to Downloads using MediaStore
fileHelper.saveToMediaStore(
context = context,
fileName = "export.csv",
mimeType = "text/csv",
destination = FileDestination.Downloads
) { outputStream ->
outputStream.write("id,name\n1,Kindling".toByteArray())
}

// Open system file picker
val launcher = fileHelper.registerPickerLauncher(activity) { uri ->
uri?.let { /* Read file */}
}
fileHelper.openPicker(launcher, mimeType = "application/pdf")

Constructors

Link copied to clipboard
constructor(context: Context)

Functions

Link copied to clipboard
fun createTempFile(prefix: String, suffix: String = ".tmp"): File

Crée un fichier temporaire dans le cache interne.

Link copied to clipboard

Retourne le répertoire cache interne de l'app (pas de permission requise).

Link copied to clipboard
fun openPicker(launcher: ActivityResultLauncher<Array<String>>, mimeType: String = "*/*")

Ouvre le sélecteur de fichiers système.

Link copied to clipboard
fun readBytes(context: Context, uri: Uri): ByteArray?

Lit le contenu d'un Uri en bytes. Retourne null en cas d'erreur.

Link copied to clipboard
fun readText(context: Context, uri: Uri, charset: Charset = Charsets.UTF_8): String?

Lit le contenu d'un Uri en texte. Retourne null en cas d'erreur.

Link copied to clipboard

Enregistre un launcher pour créer un fichier (SAF). À appeler depuis onCreate.

Link copied to clipboard

Enregistre un launcher SAF pour sélectionner un fichier. À appeler depuis onCreate.

Link copied to clipboard
fun saveToMediaStore(context: Context, fileName: String, mimeType: String, destination: FileDestination, block: (OutputStream) -> Unit): Uri?

Crée un fichier dans MediaStore et écrit via block. Retourne l'Uri du fichier créé, ou null en cas d'erreur.