2017-01-14 5 views
-5

Ich verwende Code im Kommentar, um eine Datei im Verzeichnisordner zu speichern. Dieser Code funktioniert ordnungsgemäß mit Mobiltelefon mit SD-Karte.Wie können wir einen Ordner der App im Gerätespeicher in Android erstellen?

Aber wenn ich es mit Handy ohne SD-Karte verwende, gibt es IO-Ausnahme. Wie kann ich einen Ordner wie WhatsApp in Gerätespeicher-Stammverzeichnis erstellen, um Bilder usw. zu speichern, aber ich möchte einen Ordner mit Anwendungsname zu speichern .csv-Dateien in meinem Gerät Speicherstammverzeichnis.

+2

Der Begriff "Gerätespeicher" wird in der Android-App-Entwicklung nicht verwendet. Es gibt [interner Speicher] (https://commonsware.com/blog/2014/04/07/storage-situation-interne-storage.html), [externer Speicher] (https://commonsware.com/blog/2014) /04/08/storage-situation-external-storage.html) und [Wechselspeicher] (https://commonsware.com/blog/2014/04/09/storage-situation-removable-storage.html). Es gibt kein "Environment.getstoragedirectory()" im Android SDK, und es ist unklar, worauf Sie sich beziehen, wenn Sie den Ausdruck "Gerätespeicher" verwenden. – CommonsWare

+0

Bitte überprüfen Sie Ihre Frage beim Posten hier und die Antwort, die bereits hier verfügbar –

+0

Ich möchte einen Ordner wie WhatsApp im Gerätespeicher haben, um Bilder zu speichern bt Ich muss .csv-Dateien in diesem Ordner speichern –

Antwort

0

Sie können ein Verzeichnis im internen Speicher und im externen Speicher wie folgt erstellen.

//check whether Sdcard present or not 
Boolean isSDPresent = android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED); 

if(isSDPresent) 
{ 
    // yes SD-card is present 
String directory = "/your Directory name or app name "; 
    String path = Environment.getExternalStorageDirectory().getAbsolutePath() + directory; 

    File dir = new File(path); 
    if(!dir.exists())   //check if not created then create the firectory 
        dir.mkdirs(); 

//add your files in directory as follows 
File file = new File(dir, filename); 

} 
else 
{ 
// create folder in internal memory 
File mydir = context.getDir(directory, Context.MODE_PRIVATE); //Creating an internal directry 
    if(!mydir.exists())   //check if not created then create the firectory 
     mydir.mkdirs(); 
    //add your files in directory as follows 

     File file = new File(mydir, filename); 

Ich hoffe, es wird für Sie arbeiten

+0

Ich have dies nur getan und wenn ich meine App am Telefon mit SD CRD verwenden funktioniert es richtig und wenn ein Telefon nicht SD-Karte hat, gibt es Fehler io Expect. –

+0

Ich habe den Beitrag @Sagar_Salar bearbeitet und überprüfe es jetzt. Wenn seine Arbeit für Sie bitte upvote –

+0

ich hve aktualisiert meine Frage bitte werfen Sie einen Blick drüber –

1

Zuerst sicher, dass Sie Speicher Berechtigungen innerhalb Manifest machen hinzugefügt

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 

Wenn Sie Ordner in ExternalDirectory

File f = new File(Environment.getExternalStorageDirectory()+"/foldername"); 
if(!f.exists()) f.mkdir(); 
erstellen möchten

Wenn Sie wa nt, um eine Datei im internen Speicher zu erstellen

File mydir = context.getDir("mydir", Context.MODE_PRIVATE); //Creating an internal directory; 
File fileWithinMyDir = new File(mydir, "myfile"); 
FileOutputStream out = new FileOutputStream(fileWithinMyDir); 
+0

Ich wnt, um einen Ordner wie WhatsApp haben im Gerät Speicher, um meine Dateien zu speichern. –

+0

Dann sollten Sie externe Speichermethode verwenden – Jayanth

+0

wie kann u plz mir den Code sagen einen Ordner wie WhatsApp zu haben, wenn mein Telefon SD-Karte –

Verwandte Themen