Где хранится мой файл Excel на Android?
У меня есть этот код, который делает новый файл Excel. Файл пуст, он только создает лист. Код выглядит так
public void onClick(View v) {
Workbook workbook = new HSSFWorkbook();
Sheet sheet = workbook.createSheet("Havaji");
Cell cell = sheet.createRow(0).createCell(0);
cell.setCellValue("Hi there");
try{
FileOutputStream output = new FileOutputStream("Test2.xls");
workbook.write(output);
output.close();
}
...
Где этот файл сохранен? Как управлять сохранением файла в том месте на мобильном устройстве, которое я хочу? Как создать каталог, в котором будут храниться все файлы?
2 ответа
Вот несколько методов, которые вы найдете полезными для ваших целей:
Создает все каталоги по указанному пути:
public static boolean createPath(String path) {
File pathFile = new File(path);
if (!pathFile.exists()) {
boolean result = pathFile.mkdirs();
if (!result) {
Log.e(TAG, "Unable to create directory path: " +
path);
return false;
}
}
if (!pathFile.isDirectory()) {
return false;
}
return true;
}
Возвращает корень каталога внешнего хранилища:
public static String extDirectory() {
File file = Environment.getExternalStorageDirectory();
return file.getAbsolutePath();
}
Возвращает путь к корню каталога внешнего хранилища приложения:
public static String externalMyAppDataRoot(Context context) {
return externalAppDataRoot() + File.separatorChar
+ context.getPackageName() + File.separatorChar + "data";
}
Возвращает путь к корню каталога данных приложения Android:
public static String externalAppDataRoot() {
return extDirectory() + File.separatorChar + "Android/data";
}
Я предполагаю, что хранится в /data/app//files/Test2.xls, хотя я не совсем уверен
Я бы попытался передать абсолютный путь к файлу. Если вы хотите, чтобы файл был в SDCard, я бы использовал Context.getExternalFilesDir, чтобы получить корневой путь SDCard.