qwerty
qwerty

Reputation: 77

How to save a File to any specific path in Android

I can create file. It's creating on /data/data/com.mypackage.app/files/myfile.txt. But i want to create on Internal Storage/Android/data/com.mypackage.app/files/myfiles.txt location. How can i do this?

Codes:

public void createFile()  {

    File path  = new File(this.getFilesDir().getPath());
    String fileName = "myfile.txt";
    String value = "example value";

    File output = new File(path + File.separator + fileName);

    try {
        FileOutputStream fileout = new FileOutputStream(output.getAbsolutePath());
        OutputStreamWriter outputWriter=new OutputStreamWriter(fileout);
        outputWriter.write(value);
        outputWriter.close();
        //display file saved message
        Toast.makeText(getBaseContext(), "File saved successfully!",
                Toast.LENGTH_SHORT).show();
    }
    catch (IOException e) {
        Log.e("Exception", "File write failed: " + e.toString());
    }

}

UPDATE :

I fixed the problem. Maybe someones to helps. Only changing this line.

File output = new File(getApplicationContext().getExternalFilesDir(null),"myfile.txt");

Upvotes: 3

Views: 7214

Answers (1)

Patrick Boos
Patrick Boos

Reputation: 7029

You can use the following method to get the root directory:

File path = context.getExternalFilesDir(Environment.DIRECTORY_PICTURES);

Instead of DIRECTORY_PICTURES you can as well use null or DIRECTORY_MUSIC, DIRECTORY_PODCASTS, DIRECTORY_RINGTONES, DIRECTORY_ALARMS, DIRECTORY_NOTIFICATIONS, DIRECTORY_PICTURES, or DIRECTORY_MOVIES.

See more here:

Upvotes: 1

Related Questions