path_provider, Flutter’da cihazın belirli dizinlerine erişmek (örneğin; geçici dosyalar, uygulama belgeleri, önbellek) için kullanılır. Resim yükleme gibi işlemlerde bu klasörlere erişip geçici olarak bir dosya kaydetmek veya oradan okumak gerekebilir.
—
📦 1. Kurulum
pubspec.yaml dosyasına ekle:
dependencies:
path_provider: ^2.1.2
—
📁 2. Temel Kullanım – Dosya Yolu Almak
import ‘package:path_provider/path_provider.dart’;
import ‘dart:io’;
Future<void> getDirectoryPaths() async {
// Geçici dizin (cache)
Directory tempDir = await getTemporaryDirectory();
print(“Geçici klasör yolu: ${tempDir.path}”);
// Belgeler dizini
Directory appDocDir = await getApplicationDocumentsDirectory();
print(“Belgeler klasörü yolu: ${appDocDir.path}”);
// Uygulama destek dosyaları dizini (Android/iOS fark eder)
Directory supportDir = await getApplicationSupportDirectory();
print(“Destek klasörü: ${supportDir.path}”);
}
—
🖼️ 3. Örnek: Resmi Belgeler Klasörüne Kaydetmek
import ‘dart:io’;
import ‘package:image_picker/image_picker.dart’;
import ‘package:path_provider/path_provider.dart’;
import ‘package:path/path.dart’;
Future<void> saveImageToAppDirectory() async {
final picker = ImagePicker();
final pickedFile = await picker.pickImage(source: ImageSource.gallery);
if (pickedFile != null) {
File tempImage = File(pickedFile.path);
// Belgeler klasörünü al
final appDir = await getApplicationDocumentsDirectory();
// Kaydedilecek dosya adı
final fileName = basename(tempImage.path);
// Yeni dosya yolu
final savedImage = await tempImage.copy(‘${appDir.path}/$fileName’);
print(“Resim buraya kaydedildi: ${savedImage.path}”);
}
}
—
📌 path_provider Ne Zaman Kullanılır?
Amaç Klasör Açıklama
Geçici dosya getTemporaryDirectory() Oturum kapanınca temizlenebilir
Kalıcı kullanıcı dosyaları getApplicationDocumentsDirectory() Belgeler, görseller, kullanıcı verisi için uygundur
Cache dosyaları getApplicationCacheDirectory() Uygulama cache verisi için
Uygulama destek dosyaları getApplicationSupportDirectory() Config dosyaları, logs vs.
—
Hazır mısın? Şimdi istersen path_provider ile kaydedil
miş görselleri listelemeyi veya silebilmeyi de gösterebilirim. Devam edeyim mi?