Абсолютно согласен. ОДНАКО, мы столкнулись с некоторыми устройствами, производители которых переопределят getExternalStorageDirectory, чтобы указывать на локальное хранилище, а не на SD-карту (что приводит в бешенство). Просто к вашему сведению.
я следующий вопрос. Я хотел бы поместить файл с именем data.xml в папку sdcard / appname и использовать его для чтения и записи данных приложения.
Итак, когда моя основная деятельность создается, мне нужно проверить, существует ли этот файл:
public class appname extends ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.no_elements_l);
File file = getBaseContext().getFileStreamPath("/sdcard/appname/data.xml");
if(file.exists()) {
return;
} else {
// create a File object for the parent directory
File MTdirectory = new File("/sdcard/appname/");
// have the object build the directory structure, if needed.
MTdirectory.mkdirs();
// create a File object for the output file
File outputFile = new File(MTdirectory, "data.xml");
// now attach the OutputStream to the file object, instead of a String representation
FileOutputStream DataFile = new FileOutputStream(outputFile);
}
Но у меня есть необработанное исключение типа FileNotFoundException в последней строке. В чем проблема? Используется разрешение WRITE_EXTERNAL_STORAGE добавлено в манифест.