FileKit
0.14.2indexedLibrary simplifies picking and saving files, directories, and media across different platforms using native APIs. Features include file type selection, multiple picker modes, and easy integration with UI frameworks.
Library simplifies picking and saving files, directories, and media across different platforms using native APIs. Features include file type selection, multiple picker modes, and easy integration with UI frameworks.
🚀 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.
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
// 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
)
Surfaced from shared tags and platforms — no rankings paid for.