Giriş
Bu sınıf C#'taki Environment sınıfına benziyor. Özel dizinlerin yolunu almamızı sağlıyor.
getExternalStorageState() metodunun çıktısını karşılaştırmak için kullanılır. Şöyle yaparız.
File tipinden bir sonuç döndürür. Şöyle yaparız.
File tipinden bir sonuç döndürür. Şöyle yaparız.
Bu metodu çağırmadan önce SD Kart'ın mount edildiğinden emin olmak gerekir. Bunun için
1. getExternalStorageState () metodu kullanılır.
2. Mount edildiğini anladıktan sonra File.canWrite ile yazabildiğimizi kontrol ederiz. Şöyle yaparız.
SD Kart'ta bir dizin oluşturmak için şöyle yaparız.
Şu da kullanılan bir yöntem ama bence getPath() ile dizin birleştirme yerine File (parent,child) şeklinde kullanmak daha okunaklı.
Şöyle yaparız.
En kötü yöntem ise SD Kart'ın yolu direkt (hard coded string) kodlamak
Şöyle kullanırız. Sadece mount edildiğini gösterir. Okuma veya yazma hakkını göstermez.
SD kartına okuma ve yazma için uygulamanın şu izinlere sahip olması gerekir.
Bu sınıf C#'taki Environment sınıfına benziyor. Özel dizinlerin yolunu almamızı sağlıyor.
DIRECTORY_DCIM Alanı
Şöyle yaparız. Çıktı olarak şuna benzer bir şey verir. /storage/extSdCard/DCIM
Şöyle yaparız.Şöyle yaparız. Çıktı olarak şuna benzer bir şey verir. /storage/extSdCard/DCIM
Environment.DIRECTORY_DCIM
DIRECTORY_PICTURES AlanıEnvironment.DIRECTORY_PICTURES
MEDIA_MOUNTED AlanıgetExternalStorageState() metodunun çıktısını karşılaştırmak için kullanılır. Şöyle yaparız.
Environment.MEDIA_MOUNTED
getDataDirectory metoduFile tipinden bir sonuç döndürür. Şöyle yaparız.
File data = Environment.getDataDirectory();
getExternalStorageDirectory metoduFile tipinden bir sonuç döndürür. Şöyle yaparız.
File sd = Environment.getExternalStorageDirectory();
SD Kart'ın yolunu verir. Şuna benzer bir çıktı alırız. /storage/extSdCardBu metodu çağırmadan önce SD Kart'ın mount edildiğinden emin olmak gerekir. Bunun için
1. getExternalStorageState () metodu kullanılır.
2. Mount edildiğini anladıktan sonra File.canWrite ile yazabildiğimizi kontrol ederiz. Şöyle yaparız.
if (sd.canWrite()) {...}
ÖrnekSD Kart'ta bir dizin oluşturmak için şöyle yaparız.
String dirName="Test";
File file = new File(Environment.getExternalStorageDirectory(), dirName);
boolean status = file.mkdir();
ÖrnekŞu da kullanılan bir yöntem ama bence getPath() ile dizin birleştirme yerine File (parent,child) şeklinde kullanmak daha okunaklı.
File f = new File(Environment.getExternalStorageDirectory().getPath()
+ "/MyApp/Images/");
ÖrnekŞöyle yaparız.
File sdcard = Environment.getExternalStorageDirectory();
File dir = new File(sdcard.getAbsolutePath() + “/your-dir-name/”);
// create this directory if not already created
dir.mkdir();
// create the file in which we will write the contents
File file = new File(dir, “My-File-Name.txt”);
FileOutputStream os = outStream = new FileOutputStream(file);
String data = “This is the content of my file”;
os.write(data.getBytes());
os.close();
ÖrnekEn kötü yöntem ise SD Kart'ın yolu direkt (hard coded string) kodlamak
OutputStream output = new FileOutputStream("/sdcard/.temp");
getExternalStorageState metoduŞöyle kullanırız. Sadece mount edildiğini gösterir. Okuma veya yazma hakkını göstermez.
public boolean isExternalStorageWritable() {
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
return true;
}
return false;
}
İzinlerSD kartına okuma ve yazma için uygulamanın şu izinlere sahip olması gerekir.
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
Hiç yorum yok:
Yorum Gönder