2014-09-23 2 views
1

У меня есть задача сохранить .txt во внешней SDCard (не памяти устройства). Я старался всеми способами. Я не могу получить требуемый результат. Папка создана и сохранена только на SD-карте устройства. Я использовал следующий код.Как создать папку на внешней SD-карте?

private File mPath = new File(Environment.getExternalStorageDirectory() 
     .getAbsolutePath() + "/Research/"+filname+".txt"); 

Я также поставил следующий код в файле манифеста

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

Но это не работает. Пожалуйста, помогите мне. Заранее спасибо.

+0

«не работает» => LogCat или по крайней мере фактический/ожидаемый результат. Без этого мы просто догадываемся, что случилось. – 2Dee

+0

какая ошибка вы видите, посмотрите logcat и сообщите нам – MilapTank

+0

, вы можете использовать 'fileObject.mkdir();' или 'fileObject.mkdirs();' для создания новой папки/папок –

ответ

1

Там нет никакого способа, вы можете определить путь к съемным носителям (SD карты Micro) надежно на Android. Так что перестаньте пытаться. Лучше попросите пользователя указать этот путь.

+1

Хорошо сэр. Если память устройства заполнена, возможно ли хранить данные на SD-карте или нет. Клиент спрашивает меня об этом. – Parthi

+0

Да, если память устройства заполнена, вы можете хранить данные на съемном носителе, если есть съемный носитель, а съемный носитель не заполнен, а съемный носитель доступен для записи, что в основном не относится к kitkat. Но почему новый вопрос? Сначала ответьте на мой ответ. – greenapps

0

USE mkDir() или mkDirs() создавать новые папки/папок:

private File mPath = new File(Environment.getExternalStorageDirectory() 
     .getAbsolutePath() + "/Research/"); 
mPath.mkDir(); 

mPath = new File(Environment.getExternalStorageDirectory() 
     .getAbsolutePath() + "/Research/"+filname+".txt"); 
0

Я не уверен, что это может вам помочь, но у меня была такая же проблема, и этот код решил. Создать этот частный класс:

private class SingleMediaScanner implements MediaScannerConnectionClient { 

    private MediaScannerConnection mMs; 
    private File mFile; 

    public SingleMediaScanner(Context context, File f) { 
     mFile = f; 
     mMs = new MediaScannerConnection(context, this); 
     mMs.connect(); 
    } 

    @Override 
    public void onMediaScannerConnected() { 
     mMs.scanFile(mFile.getAbsolutePath(), null); 
    } 

    @Override 
    public void onScanCompleted(String path, Uri uri) { 
     mMs.disconnect(); 
    } 

} 

После создания файла вызова этого:

new SingleMediaScanner(MainActivity.this, file); 

Я надеюсь, что это может помочь вам.

1

Вот решение

Environment.getExternalStorageDirectory() 

выше код возврата «/ хранение/sdcard0», но если вы хотите сделать папку на внешней SD-карты вам нужно «/ хранение/sdcard1». поэтому постарайтесь сделать что-то вроде этого

private File mPath = new File(Environment.getExternalStorageDirectory().replace("0", "1") 
    .getAbsolutePath() + "/Research/"+filname+".txt"); 
Смежные вопросы