Pick and save Files, Medias and Folder for Kotlin Multiplatform / KMP and Compose Multiplatform / CMP
See the code🚀 A powerful cross-platform file operations library for Kotlin Multiplatform
FileKit is trusted by developers building amazing cross-platform applications:
Using FileKit in your project? Let us know!
Visit our documentation to learn more: https://filekit.mintlify.app
Migrate from FileKit 0.8 to 0.10 by following the migration guide.
// build.gradle.kts
dependencies {
implementation("io.github.vinceglb:filekit-core:$version")
implementation("io.github.vinceglb:filekit-dialogs:$version")
implementation("io.github.vinceglb:filekit-dialogs-compose:$version")
implementation("io.github.vinceglb:filekit-coil:$version")
}
Follow the installation guide to learn how to install and setup FileKit in your project.
// Pick a file
val file = FileKit.openFilePicker()
// Pick multiple files
val files = FileKit.openFilePicker(mode = FileKitMode.Multiple())
// Pick only images
val imageFile = FileKit.openFilePicker(type = FileKitType.Image)
// Pick a directory
val directory = FileKit.openDirectoryPicker()
// Save a file
val contentToSave = "Hello FileKit!"
val file = FileKit.openFileSaver(
suggestedName = "document",
defaultExtension = "txt",
allowedExtensions = setOf("txt", "md"),
)
file?.writeString(contentToSave)
// Work with files
val myFile = FileKit.filesDir / "document.pdf"
println(myFile.name)
println(myFile.size())
myFile.writeString("Hello, World!")
// Image operations
val compressedBytes = FileKit.compressImage(
bytes = imageFile.readBytes(),
quality = 80,
maxWidth = 1024,
maxHeight = 1024
)
See the quickstart guide to learn more about the different file operations and utilities available in FileKit.
FileKit is designed to be modular, allowing you to include only what you need:
PlatformFile abstractionFileKit stands on the shoulders of giants. Special thanks to:
Made with ❤️ by Vince
140 followers · starred Aug 2024
224 followers · starred Aug 2024
886 followers · starred Aug 2024
100 followers · starred Jun 2025
Pick and save Files, Medias and Folder for Kotlin Multiplatform / KMP and Compose Multiplatform / CMP
See the code🚀 A powerful cross-platform file operations library for Kotlin Multiplatform
FileKit is trusted by developers building amazing cross-platform applications:
Using FileKit in your project? Let us know!
Visit our documentation to learn more: https://filekit.mintlify.app
Migrate from FileKit 0.8 to 0.10 by following the migration guide.
// build.gradle.kts
dependencies {
implementation("io.github.vinceglb:filekit-core:$version")
implementation("io.github.vinceglb:filekit-dialogs:$version")
implementation("io.github.vinceglb:filekit-dialogs-compose:$version")
implementation("io.github.vinceglb:filekit-coil:$version")
}
Follow the installation guide to learn how to install and setup FileKit in your project.
// Pick a file
val file = FileKit.openFilePicker()
// Pick multiple files
val files = FileKit.openFilePicker(mode = FileKitMode.Multiple())
// Pick only images
val imageFile = FileKit.openFilePicker(type = FileKitType.Image)
// Pick a directory
val directory = FileKit.openDirectoryPicker()
// Save a file
val contentToSave = "Hello FileKit!"
val file = FileKit.openFileSaver(
suggestedName = "document",
defaultExtension = "txt",
allowedExtensions = setOf("txt", "md"),
)
file?.writeString(contentToSave)
// Work with files
val myFile = FileKit.filesDir / "document.pdf"
println(myFile.name)
println(myFile.size())
myFile.writeString("Hello, World!")
// Image operations
val compressedBytes = FileKit.compressImage(
bytes = imageFile.readBytes(),
quality = 80,
maxWidth = 1024,
maxHeight = 1024
)
See the quickstart guide to learn more about the different file operations and utilities available in FileKit.
FileKit is designed to be modular, allowing you to include only what you need:
PlatformFile abstractionFileKit stands on the shoulders of giants. Special thanks to:
Made with ❤️ by Vince
140 followers · starred Aug 2024
224 followers · starred Aug 2024
886 followers · starred Aug 2024
100 followers · starred Jun 2025