У меня возникла проблема с созданием текстового файла на SD-карте для прикрепления к электронному письму, которое будет отправлено с приложением gmail. Когда вы прикрепляетесь к письму в приложении gmail, электронная почта находится в красном состоянии «Отправка ...» навсегда. Файл создается с помощью createCSVfile() ниже.файл, исчезающий с SD-карты
Отладка моего кода, запуск моего приложения в разные времена, csv_file.exists() всегда возвращает false, как если бы файл не был найден и не создавался при каждом запуске приложения. Однако, используя диспетчер файлов, я вижу, что файл находится между ними и во время прогонов.
Любая помощь пожалуйста? Благодаря
File csv_file = null;
String createCSVfile() {
if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {
csv_file = new File(getExternalFilesDir(null) + File.separator + "InOutStats.txt");
if (csv_file != null) {
if(csv_file.exists()){
Log.v("CSV_FILE", "Stat file " + csv_file.toString() +" already there!");
}else{
csv_file.getParentFile().mkdirs();
try {
boolean bool = csv_file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
FileWriter fWriter = null;
try {
fWriter = new FileWriter(csv_file);
} catch (IOException e) {
e.printStackTrace();
}
BufferedWriter writer = new BufferedWriter(fWriter);
try {
writer.write("Some text here!!! " + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(System.currentTimeMillis()));
writer.newLine();
} catch (IOException e) {
e.printStackTrace();
}
try {
writer.flush();
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}else{
Log.v("CSV_FILE", "NO SD CARD HERE???");
}
return csv_file.toString();
}
Hi. Я применил эти два изменения, как вы предлагаете, но все одинаково. Фактически, та же проблема возникла, когда я только печатал статическую String в файл, и новому файлу() может быть задан весь путь. – DrWolf
Привет снова. Очень странно. Я тестировал один и тот же код на двух других телефонах, и электронное письмо было отправлено правильно. Не уверен что происходит. Спасибо – DrWolf
Возможно, физическая файловая система была буферизована, а не напрямую записана на диск/SD-карту. Хорошая идея тестирования на других телефонах. –