Java Android-创建文件在Android 5上有效,但在Android 6或更高版本中无效
我有一个简单的方法,在Android的下载文件夹中创建一个文件夹。它在安卓5中工作得很好,但在安卓6或更高版本(我用安卓6和8测试)中,文件夹没有创建 有什么变化吗 这是我的方法,正如我所说,这是一个简单的创建文件夹功能。但它不适用于Android 6或更高版本,只适用于Android 5Java Android-创建文件在Android 5上有效,但在Android 6或更高版本中无效,java,android,file,Java,Android,File,我有一个简单的方法,在Android的下载文件夹中创建一个文件夹。它在安卓5中工作得很好,但在安卓6或更高版本(我用安卓6和8测试)中,文件夹没有创建 有什么变化吗 这是我的方法,正如我所说,这是一个简单的创建文件夹功能。但它不适用于Android 6或更高版本,只适用于Android 5 public void exportaTabelas(SQLiteDatabase db, String tableName) { try { // Query the
public void exportaTabelas(SQLiteDatabase db, String tableName) {
try {
// Query the data in the table
Cursor cursor = db.rawQuery("SELECT * FROM " + tableName, null);
//File exportDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
exportDir = new File (Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "/ENEL/");
if (!exportDir.exists())
{
exportDir.mkdirs();
}
File file = new File(exportDir, tableName +".csv");
file.createNewFile();
//CSVWriter csvWriter = new CSVWriter(new FileWriter(file));
CSVWriter csvWriter = new CSVWriter(new FileWriter(file.getAbsoluteFile(), true));
// Write the table data to the file
csvWriter.writeNext(cursor.getColumnNames());
while(cursor.moveToNext()) {
String arrStr[] = { cursor.getString(0), cursor.getString(1) };
csvWriter.writeNext(arrStr);
}
// close cursor and writer
cursor.close();
csvWriter.close();
} catch (Exception e) {
// handle exception
Log.e("MainActivity", e.getMessage(), e);
}
Toast.makeText(this, "ARQUIVO CSV GERADO!", Toast.LENGTH_SHORT).show();
}
我假设您在
权限方面有问题
Android 5.1.1及以下版本使用安装时权限,因此清单
文件中的
就足够了。检查
但对于超过5.1.1的Android,您需要在清单中显示
,并在运行时向用户请求权限。检查
Android开发者文档网站是你最好的选择
PS:您应该在问题中包含您收到的任何错误消息,例如在try catch
块中捕获并记录到Android Studio IDE中的Logcat的任何错误。对于Android 6及以上版本,exportDir.exists()
返回的是什么?可能与@MartinZeitler重复的不是。我已经在XML上添加了此权限。@TejasPandya返回true。有吗?就是这样!谢谢实际上,在Android 6或更高版本中,需要使用requestPermissions方法向用户请求在设备中写入文件的权限。谢谢你,伙计!