Android - 创建文件适用于 Android 5 但不适用于 Android 6 或更高版本

我有一个简单的方法,可以在 Android 的下载文件夹中创建一个文件夹。它在 Android 5 中运行良好,但在 Android 6 或更高版本(我使用 Android 6 和 8 测试)中没有创建文件夹。


有什么改变吗?


这是我的方法,正如我所说的,它是一个简单的创建文件夹功能。但它不适用于 Android 6 或更高版本,仅适用于 Android 5。


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();

    }


绝地无双
浏览 149回答 1
1回答

MMTTMM

我假设你有一个问题permission。Android 5.1.1 及更低版本使用安装时权限,因此文件<uses-permission ...>中的amanifest就足够了。检查这个但是对于超过 5.1.1 的 Android,您需要<uses-permission ...>在清单中并在运行时请求用户许可。检查这个Android Developers 文档站点是您最好的选择!PS:您应该在问题中包含任何错误消息,例如在try catch块中捕获并记录到 Android Studio IDE 中的 Logcat 的任何错误。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java