2013-04-05 10 views
5

jestem w stanie uzyskać metody tworzenia folderu w pamięci wewnętrznej,Tworzenie folderów w pamięci wewnętrznej

i przeszedł kilka rozmów w Android create folders in Internal Memory i Problem facing in reading file from Internal memory of android. Ale nadal nie jestem w stanie spełnić mojego wymogu.

Moim wymaganiem jest, chcę utworzyć folder w pamięci wewnętrznej, tam chcę przechowywać jeden film.

Dziękuję bardzo z góry za cenne informacje zwrotne.

Odpowiedz

16

spróbować poniżej

File mydir = context.getDir("users", Context.MODE_PRIVATE); //Creating an internal dir; 
if (!mydir.exists()) 
{ 
    mydir.mkdirs(); 
}  
+5

Myślę, że sprawdzenie, czy istnieje, nie jest tutaj potrzebne. W oparciu o dokumentację: "Katalog zostanie utworzony, jeśli jeszcze nie istnieje." – Paul

+1

jeśli (! Mydir.exists) powinno być ** jeśli (! Mydir.exists()) ** –

+0

jak dodać plik do tego konkretnego katalogu? –

6

Oto kod, który używam do tworzenia plików w pamięci wewnętrznej:

File myDir = context.getFilesDir(); 
    // Documents Path 
    String documents = "documents/data"; 
    File documentsFolder = new File(myDir, documents); 
    documentsFolder.mkdirs(); // this line creates data folder at documents directory 

    String publicC = "documents/public/api." + server; 
    File publicFolder = new File(myDir, publicC); 
    publicFolder.mkdirs(); // and this line creates public/api.myservername folder in internal memory 
+0

nie masz pojęcia, jak długo czekałem na to. Za każdym razem, gdy chciałbym go wypróbować, utworzyłby plik poza katalogiem plików i dodałby "app_" do katalogu. +1 Ode mnie za doskonałe, małe i praktyczne rozwiązanie. –

0

Istnieje „cacheDirectory” w „Dane/nazwa_pakietu” katalogu.

Jeśli chcesz zapisać coś w tej pamięci podręcznej,

File cacheDir = new File(this.getCacheDir(), "temp"); 
if (!cacheDir.exists()) 
    cacheDir.mkdir(); 

gdzie ten jest kontekst.

1

Aby utworzyć katalog na telefon pamięci do przechowywania pamięci podstawowej (zazwyczaj wewnętrznej) należy użyć następującego kodu. Należy pamiętać, że ExternalStorage w Environment.getExternalStorageDirectory() niekoniecznie odnosi się do sdcard, zwraca podstawowy telefon pamięciowych

File mediaStorageDir = new File(Environment.getExternalStorageDirectory(), "MyDirName"); 

if (!mediaStorageDir.exists()) { 
    if (!mediaStorageDir.mkdirs()) { 
     Log.d("App", "failed to create directory"); 
     return null; 
    } 
} 

katalog utworzony przy użyciu tego kodu będzie widoczna dla użytkownika telefonu. Druga metoda (jak w zaakceptowanej odpowiedzi) tworzy katalog w lokalizacji (/data/data/package.name/app_MyDirName), więc zwykły użytkownik telefonu nie będzie miał do niego łatwego dostępu, więc nie powinieneś go używać do przechowywania wideo/zdjęć itp

Musisz uprawnienia, w AndroidManifest.xml

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" /> 
+0

** FALSE AND MISLEADING ** - nie ma takich uprawnień, jak Android.permission.WRITE_INTERNAL_STORAGE –

+0

ta odpowiedź pochodzi z maja 2016 r., Prosimy o sprawdzenie tego pozwolenia w wersji Android używanej w tym czasie. Zmiany w wersji Androida zmieniają się w uprawnienia. Będzie działać w systemie Android 5.0 – prodev

+0

** FALSE AGAIN **. Nie ** nigdy ** nie było takim ** wewnętrznym ** pozwoleniem na przechowywanie - nawet sugerować, że jest to zdradzenie głębokiego i fundamentalnego niezrozumienia systemów plików Android. Faktem jest, że aplikacje zawsze mają uprawnienia do ** własnego ** folderu pamięci wewnętrznej. –

Powiązane problemy