2012-08-02 61 views
22

Uygulamamın Dahili Depolanmasında bir fotoğrafı özel yapmak için kaydetmek istiyorum. Bu yüzden biraz araştırma yaptım ve dizini almanın 2 yolunu gördüm.Android'de getDir ve getFilesDir arasındaki fark nedir?

1.With getDir:

File dir = getDir(Environment.DIRECTORY_PICTURES, Context.MODE_PRIVATE); 

2.With getFilesDir:

en iyisi
File dir = getFilesDir(); 

? Dahili Depolama Alanındaki konumu nasıl döndürür?

Dosya yazmanın yolu, yönünüzü alma biçiminize mi bağlı? Android'de dosya yazmanın birçok yolu olduğundan biraz kaydım.

cevap

28

getFilesDir() sadece uygulamanıza özel bir dizine bir File nesnesini döndürür. openFileOutput(String, int)'u kullandığınızda, yazdığınız veriler doğrudan bu dizinde saklanır ve başka bir uygulama tarafından erişilemez. Uygulama dosyalarınızı saklar.

getDir() da bunu oluşturmak moda göre diğer uygulamalar tarafından erişilebilir dahili bellek, herhangi bir dosya veya dizin oluşturmanızı sağlar. openFileOutput(String, int) bunun çıktısı ile çalışmaz, bu nedenle bu dizin veya dosya ile ilgilenmek için başka yazma ve okuma araçları kullanmanız gerekecektir. Bu, yalnızca uygulamanız tarafından kullanılan dosyalardan başka özel dosyalar oluşturmak için kullanılır.

+0

Teşekkürler! Ve 'Dosya dir = getDir (Environment.DIRECTORY_PICTURES, Context.MODE_PRIVATE),' '' '' MODE_PRIVATE' nedeniyle dahili bellekteki '' File'ı alacak mı? – cleroo

+0

Bir şey değil. MODE_PRIVATE, getDir için varsayılan sabittir ve dosyanızın/dizininizin uygulamanıza özel olacağını söyler. getDir her zaman bir iç dizin oluşturacak/oluşturacaktır. DIRECTORY_PICTURES API 8 ve üstü için olduğu gerçeğine dikkat edin. – Erol

+0

@Erol Yani getDir'in "MODE_PRIVATE" ile bir şekilde getFilesDir ile aynı olduğu sonucuna varabilir miyim? –

İlgili konular