2016-07-27 3 views
0

Я хотел бы использовать внутреннее хранилище для своих файлов. Я использую функцию getExternalFilesDir(), которая использует внутреннее хранилище только тогда, когда нет установленной SD-карты, иначе она хранит файлы на SD-карте.Внутреннее хранилище в android

Есть ли способ использовать только внутреннее хранилище (то, что доступно для пользователя), даже если установлена ​​SD-карта?

Благодаря

+0

Возможный дубликат [Как получить путь к файлу файла из внутренней памяти в андроид] (HTTP : //stackoverflow.com/questions/20280250/how-to-get-file-path-of-file-from-internal-storage-in-android) –

ответ

2

getExternalFilesDir() обеспечит внешний путь хранения не внутренний, чтобы получить внутренний путь хранения, вы должны использовать этот метод getFilesDir() проверки ниже кода.

File file = new File(ctx.getFilesDir()+"/MyFolder"); 
file.mkdirs() 
+0

@Jan Hakl, если это поможет вам любезно отметить отметку и проголосовать. –

1

В соответствии с Android Training документации вы можете использовать внутреннее хранение только для

  1. Это всегда доступно.
  2. Файлы, сохраненные здесь, доступны только для вашего приложения .
  3. Когда пользователь удаляет ваше приложение, система удаляет все файлы приложения из внутреннего хранилища.

Вы можете использовать внутреннюю память следующим

File file = new File(context.getFilesDir(), filename); //Creates a new file 

Или вы можете следовать этой

String FILENAME = "hello_file"; 
String string = "hello world!"; 

FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE); 
fos.write(string.getBytes()); 
fos.close(); 
+0

Да, когда я использую getFilesDir(), я сохраняю файл во внутреннем хранилище, но пользователь не может его получить. Но когда я использую getExternalFilesDir(), и нет SD-карты, тогда он также использует внутреннее хранилище и доступен для пользователя. Мне нужно всегда использовать это внутреннее хранилище и иметь его доступным для пользователя в файловом менеджере. –

+0

Но из этого утверждения «Файлы, сохраненные здесь, доступны только вашему приложению». Я не думаю, что вы можете получить доступ к файлам приложений из файлового менеджера – LvN

+0

Да, но когда я использую getExternalFilesDir(), а SD-карта отсутствует, тогда это работает ... –

Смежные вопросы