FileHelper
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")Content copied to clipboard
Functions
Link copied to clipboard
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
Ouvre le sélecteur de fichiers système.
Link copied to clipboard
fun registerCreateLauncher(activity: FragmentActivity, onResult: (Uri?) -> Unit): ActivityResultLauncher<String>
Enregistre un launcher pour créer un fichier (SAF). À appeler depuis onCreate.
Link copied to clipboard
fun registerPickerLauncher(activity: FragmentActivity, onResult: (Uri?) -> Unit): ActivityResultLauncher<Array<String>>
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?